Skip to content

Phase 3: the 3-D corkscrew walk - #3

Merged
zolizoli merged 1 commit into
mainfrom
phase-3-corkscrew
Jul 1, 2026
Merged

Phase 3: the 3-D corkscrew walk#3
zolizoli merged 1 commit into
mainfrom
phase-3-corkscrew

Conversation

@zolizoli

Copy link
Copy Markdown
Member

Phase 3 — 3-D corkscrew

Lifts the 2-D walk into a corkscrew and renders it with matplotlib's mplot3d. Stacked on #2 — review/merge the chain in order, or re-target to main.

  • layout/walk3d.pywalk3d_layout: the 2-D walk in xy with a constant z_step lift per sentence. Reuses walk_layout, so the corkscrew's xy is provably identical to the flat walk.
  • render/mpl3d.pyrender_path_3d: an Line3DCollection path with per-segment colours and per-segment line widths (the size channel carries into 3-D); true-proportion box aspect, clean hidden axes.
  • text_walk(..., helix=True, z_step=...) — winds the same preset into a corkscrew (path mode; glyph mode is rejected in 3-D with a clear error).

Verification

  • make ci green: 117 tests, incl. Hypothesis properties: z increases by exactly z_step per step, and the corkscrew's xy equals the 2-D walk.
  • mkdocs build --strict green; examples/text_walk_3d_demo.py renders the corkscrew headlessly (eyeballed).

🤖 Generated with Claude Code

Lift the 2-D walk into a corkscrew and render it in matplotlib 3-D.

- layout/walk3d.py: walk3d_layout — the 2-D walk in xy with a constant z
  lift per sentence; reuses (and stays consistent with) walk_layout.
- render/mpl3d.py: render_path_3d — an mplot3d Line3DCollection path with
  per-segment colours and per-segment line widths (so the size channel
  carries into 3-D); true-proportion box aspect, clean hidden axes.
- presets/text_walk.py: helix=True / z_step wind the walk into a corkscrew
  (path mode; glyph mode rejected in 3-D with a clear error).
- Exports, example (text_walk_3d_demo.py), docs, CHANGELOG.

make ci green (117 tests, incl. z-monotonicity and xy-equals-2D-walk
properties); mkdocs build --strict green; corkscrew renders headlessly.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@zolizoli
zolizoli changed the base branch from phase-2-walk-spiral to main July 1, 2026 09:30
@zolizoli
zolizoli merged commit 7fcde03 into main Jul 1, 2026
@zolizoli
zolizoli deleted the phase-3-corkscrew branch July 1, 2026 09:32
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