{"id":23686,"library":"euclid3","title":"euclid3","description":"A Python 3 update of the original euclid library providing 2D and 3D vector, matrix, quaternion, and geometry primitives. Current version is 0.01, with infrequent releases and minimal maintenance.","status":"active","version":"0.01","language":"python","source_language":"en","source_url":"https://github.com/ezag/euclid3","tags":["euclid","geometry","vector","matrix","quaternion","2d","3d"],"install":[{"cmd":"pip install euclid3","lang":"bash","label":"Install via pip"}],"dependencies":[],"imports":[{"note":"The original euclid package (Python 2) uses 'euclid'; euclid3 uses 'euclid3'.","wrong":"from euclid import Vector3","symbol":"Vector3","correct":"from euclid3 import Vector3"},{"note":"","wrong":"","symbol":"Matrix4","correct":"from euclid3 import Matrix4"},{"note":"","wrong":"","symbol":"Quaternion","correct":"from euclid3 import Quaternion"},{"note":"","wrong":"","symbol":"Point2","correct":"from euclid3 import Point2"}],"quickstart":{"code":"from euclid3 import Vector3, Matrix4, Quaternion\n\nv1 = Vector3(1, 2, 3)\nv2 = Vector3(4, 5, 6)\nprint(v1.cross(v2))\n\nm = Matrix4.new_rotate_axis(1.570796, 'z')\nrotated = m * v1\nprint(rotated)\n\nq = Quaternion.new_rotate_axis(1.570796, Vector3(0, 0, 1))\nprint(q)","lang":"python","description":"Basic usage showing vector cross product, matrix rotation, and quaternion rotation."},"warnings":[{"fix":"Use v1.cross(v2) for cross product, and v1 * v2 for dot product.","message":"Vector multiplication uses * for dot product, not @ operator. For cross product, use the .cross() method.","severity":"gotcha","affected_versions":"*"},{"fix":"Consider using alternatives like numpy, pyrr, or pyquaternion for more active development.","message":"The library has not been updated in years (last release 0.01 from ~2016). It may have unpatched bugs and no official support for newer Python versions beyond 3.4.","severity":"deprecated","affected_versions":"0.01"},{"fix":"Always use matrix * vector for transformation, not vector * matrix.","message":"Matrix4 multiplication is left-multiplication (matrix * vector). The order matters and may not match other libraries.","severity":"gotcha","affected_versions":"*"}],"env_vars":null,"search_vec":"'0.01':24 '2d':12,36 '3':4 '3d':14,37 'current':21 'euclid':9,31 'euclid3':1 'geometri':19,32 'infrequ':26 'librari':10 'mainten':30 'matrix':16,34 'minim':29 'origin':8 'primit':20 'provid':11 'python':3 'quaternion':17,35 'releas':27 'updat':5 'vector':15,33 'version':22","created_at":"2026-05-01T08:09:04.985307+00:00","updated_at":"2026-05-01T08:09:04.985307+00:00","problems":[{"fix":"Install and import euclid3: pip install euclid3, then 'from euclid3 import Vector3'.","cause":"Attempted to import the old euclid package (Python 2) instead of euclid3.","error":"ModuleNotFoundError: No module named 'euclid'"},{"fix":"Ensure correct casing: from euclid3 import Vector3","cause":"Misspelled the class (e.g., vector3 instead of Vector3) or imported the wrong module.","error":"AttributeError: module 'euclid3' has no attribute 'Vector3'"},{"fix":"Use v1.cross(v2) instead of v1 * v2 for cross product.","cause":"euclid3 uses * for dot product, not cross product. For cross product, use .cross() method.","error":"TypeError: unsupported operand type(s) for *: 'Vector3' and 'Vector3' (when trying cross product with *)"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":"0.01","cli_name":"","cli_version":null,"type":"library","homepage":"http://partiallydisassembled.net/euclid.html","github":null,"docs":null,"changelog":null,"pypi":"https://pypi.org/project/euclid3/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["data","ai-ml","serialization"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-06-29","last_verified":"2026-06-29","next_check":"2026-07-29","install_tag":null}}