Skip to content

Hinged panels and hand-placed curved tiles - #11

Merged
geastham merged 2 commits into
mainfrom
hinged-panels
Sep 26, 2026
Merged

geastham merged 2 commits into
mainfrom
hinged-panels

Conversation

@geastham

Copy link
Copy Markdown
Owner

Faces that sit at an angle can now be built flat and clicked onto the model with locking hinge plates (44302 on the model, 44301 under the panel), at any multiple of 22.5 degrees. Their top layer takes curved tiles placed by hand (macaroni 27925 / 27507, quarter 25269, half circle 24246, round 98138 / 14769 / 67095), so faces can show true circles and arcs that the voxel grid can't make.

  • model.hinged_panel(...) and panel.place(...) in the DSL; the panel's space and hinge knuckles are carved from the model
  • hinge geometry (axis half a stud beyond the plate, 0.8 mm below its top) taken from the LDraw parts and verified with tools/ldraw_check.py (hinge axes of each pair meet)
  • checks: at least 2 hinges, every panel part held through them, no tile overlaps, nothing of the model in the panel's space
  • renderer draws tilted panels and curved tiles as per-cell polygons; viewer builds real geometry; LDraw export and reader; book sub-build and attach step; the video dissolves late panels in
  • catalog: curved tiles, hinge plates, bright green; availability re-synced
  • tests: tests/test_hinge.py (164 passing), lighthouse PASS

🤖 Generated with Claude Code

https://claude.ai/code/session_01FaNuYfhcSdDh4vKYNH9U2h

geastham and others added 2 commits September 26, 2026 16:10
A panel can now be built flat and clicked onto the model at an angle with locking hinge
plates (44302 on the model, 44301 under the panel; the axis geometry comes from the LDraw
parts). Its top layer takes curved tiles placed by hand (macaroni 27925/27507, quarter
25269, half circle 24246, round 98138/14769/67095), so faces can carry true circles.

- dsl: Model.hinged_panel(...), Panel.place(...); angles in 22.5 degree clicks
- hinge.py: frame, clearance (oriented box), tile outlines, grips and rim clashes, packing
- pipeline: fixed hinge plates on the model, per-panel checks, attach step last
- render: per-cell polygon meshes for tilted panels and curved tiles; book icons
- viewer: hinged panels as real geometry; LDraw export and reader; ldraw_check support
- catalog: curved tiles, hinge plates, bright green; availability re-synced
- tests: tests/test_hinge.py; docs in design-dsl.md, geometry-and-checks.md, SKILL.md

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FaNuYfhcSdDh4vKYNH9U2h
…irs, book and video

- knuckle clearance uses the real finger radius (~2.6 mm), not 6.5 mm
- tile layers pack without the repair loop (islands are fine there)
- book: the attach step for a hinged panel says to click it on at its angle
- video: panels that go on after the last part dissolve in; the count includes them

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FaNuYfhcSdDh4vKYNH9U2h
@qodo-code-review

Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@geastham
geastham merged commit 6fa997b into main Sep 26, 2026
1 check passed
@geastham
geastham deleted the hinged-panels branch September 26, 2026 21:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant