changelog

0.6.0

2026-11-12

added

  • Algebraic Kernel (``algebra.py``): Added exact algebraic field constructors (get_algebraic_field, get_golden_field, get_kepler_field), canonical golden/Kepler reduction (canonicalize_golden, canonicalize_kepler, reduce_in_field), clean_expr, exact_sign, and zero_test while enforcing strict exact coordinate validation in Model.__setitem__.

  • Rational Trigonometry Invariants (``invariants.py``): Added exact symbolic quadrance, line_spread, vertex_spread, cross, orientation, cross_ratio, is_harmonic, and Angle invariants.

  • Targeted Intersections & Subconstructions (``intersections.py``): Added Model(..., auto_intersect=False), explicit model.intersect(...) / intersect_2d, SubconstructionScope (model.subconstruction(...)), ConstructionError, and the @proposition workflow decorator.

  • Constructive Proof Verifier (``proof.py``): Added Given / Construct / Demonstrate ledger tracking, Step, ProofAssertionError, model.assert_* geometric assertions, and conclude.

changed

  • Serialization (``serialize.py``): Upgraded model serialization to schema v2 preserving exact SymPy coordinate expressions, ancestral DAG provenance, construction steps, and backward-compatible load_model deserialization.

0.5.7

2026-11-11

added

  • Intersections: Added closed-form symbolic exact_intersect for line-line, line-circle, and circle-circle intersections (avoiding slow quartic Gröbner solves on nested radicals), plus numeric pre-filtering in check_existence and point deduplication.

  • Model: Added Model.set_simplifier hook for custom coordinate expression simplification.

  • Demos & Tests: Added three exact symbolic regular heptadecagon (17-gon) constructions in demos/heptadecagon/ (Richmond, DeTemple Carlyle circles, and Mohr–Mascheroni pure compass) with verification suite tests/test_heptadecagon.py.

0.5.4

2026-01-04

0.5.5

2026-01-04

changed

  • Serialization: Refactored save and load_model to use a dictionary structure for elements (keyed by ID) in the JSON output, improving readability and inspection.

added

  • Model: Added use_point_subscript parameter to Model initialization to support subscript point labeling (e.g., A2 instead of AA).

  • Points: Implemented logic for generating subscript labels when use_point_subscript is True.

  • Serialization: Added persistence for use_point_subscript flag in model JSON.

0.5.3

2026-01-03

added

  • Demos: Added demos/level-1.py, demos/level-2.py, and demos/level-3.py scripts for verifying model performance and complexity.

0.5.2

2026-01-03

changed

  • CLI: Refactored CLI implementation into src/geometor/model/cli.py.

  • Model: Added parse_command method to Model class for programmatic command execution.

  • Documentation: Restructured mission and todo documentation.

0.5.1

2025-12-15

fixed

  • Docstrings: Standardized docstrings to Google style across all modules.

  • Type Hints: Resolved extensive type hinting issues and added missing hints.

  • Sphinx: Fixed ambiguous cross-reference warnings in documentation build.

  • CLI: Fixed unused variable warnings in __main__.py.

0.5.0

2025-12-08

added

  • CLI REPL: Introduced a command-line interface for interactive model building (python -m geometor.model).

  • Wedges: Added set_wedge_by_IDs for easier wedge creation and support for direction in Wedge initialization.

  • Docs: Added CLI usage documentation.

0.4.6

2025-12-08

changed

  • Comprehensive type hinting added to all core modules.

  • Removed auto-generated API documentation.

  • Updated .gitignore to exclude generated docs.

0.4.5

2025-12-06

changed

  • Refined metadata.

  • Updated documentation.

0.4.4

2025-12-04

changed

  • Refactored report generation into ReportMixin.

  • Centralized color definitions in geometor.model.colors.

  • Enhanced docstrings and type hinting across modules.

  • Updated __main__.py to use new reporting methods.

  • Fixed imports in demo scripts.

0.4.3

  • Refined docstrings and type hinting.

  • Fixed from __future__ import annotations placement.

0.4.2

2025-11-28

fixed

  • Export check_existence and find_all_intersections from geometor.model.element for easier access.

  • Removed outdated and redundant API documentation files.

0.4.1

2025-11-28

changed

  • Refactored model organization: Removed underscore prefixes from module names.

  • Removed common.py to reduce circular dependencies.

  • Integrated serialization logic directly into Model class methods.

  • Organized Sections and Wedges functionality into Mixins.

0.4.0

2025-10-31

added

  • Added Polynomial element to the model.

  • Added add_poly method to the Model class.

  • Added pytest for testing.

0.3.1

2025-10-30

fixed

  • Fixed a recursion error in _get_ancestors_IDs by adding cycle detection.

0.3.0

2025-10-27

added

  • Improved logging and output for better debugging and user feedback.

0.2.6

2025-10-25

added

  • Cleaned algebraic expressions for lengths to simplify complex mathematical representations.

fixed

  • Handled polygons in ancestor search to prevent errors and improve reliability.

  • Added a missing return statement to ensure correct functionality.

0.2.5

2025-10-23

fixed

  • Fixed serialization of Wedge objects, ensuring models can be saved and loaded correctly.

  • Correctly serialized element classes to handle sets, improving data integrity.

0.2.4

2025-10-23

fixed

  • Fixed serialization of Section objects, ensuring models can be saved and loaded correctly.

0.2.3

2025-10-22

added

  • Added guide property to model elements to exclude them from intersection calculations and analysis.

fixed

  • Persisted guide property to ensure it is saved and loaded correctly.

  • Ensured delete only removes chronological dependents to prevent unintended data loss.

  • Improved model loading speed and serialization stability for a more reliable user experience.

0.2.2

2025-10-22

changed

  • Refactored logging for better performance and readability.

0.2.1

2025-10-20

changed

  • Replaced the event-driven system with a synchronous analysis hook to simplify the architecture and ensure correct execution order.

  • Decoupled all logging from the model library; logging is now handled by the calling application.

0.2.0

2025-10-20

changed

  • Bumped version to 0.2.0.

  • Optimized golden section check for better performance.

  • Standardized on ‘ID’ instead of ‘label’ for element identification.

  • Refactored the Model class and added delete functionality.

  • Added an event system and refactored the Section representation.

0.1.0

2023-11-15

  • Repository initialized.