{"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,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","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,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}