← Back to Apps Index

Dynamic Project States — Brick Cylinder (Toy Model)

A course-by-course build where each course can be laid cw or ccw. The branching choices are rendered as “possible trajectories”.

Visualisation

Unwrapped cylinder “blueprint”: rows are courses (bottom → top), columns are bricks around the circle.
booting… cw: 0 ccw: 0
Tips: Space play/pause · step brick · Shift+ step course.

Controls


70ms
0ms
A deterministic policy selects a direction at each course start. Random mode instead samples a direction using the displayed probability.

Tangent choices at the current state

At the start of a course, the action fibre is {cw, ccw}. In manual mode you must choose.

Trajectory

Top: blueprint progress bar. Bottom: all unrestricted course-direction histories (depth-limited), not a count conditioned on the selected policy or current prefix.
8

Analytics

Review vs Ends / Ways / Means

Quick audit of what we built, what was missing, and what’s corrected in this revision.
Ends: “working visuals” — building goes up course-by-course
Blueprint canvas fills row-by-row; within each course it fills brick-by-brick (micro-steps) so motion is visible.
Ends: “possible trajectories”
Right panel shows a branching tree of cw/ccw choices (depth limited) and highlights the realised path prefix.
Ways: “blueprint gradually filled in”
The unwrapped cylinder grid is literally a blueprint that becomes filled as courses complete.
Ways: tangent-bundle intuition
At each course start, the “tangent fibre” is the discrete choice set {cw, ccw}; a deterministic policy selects a direction. The fibre is a set, not a tangent vector space.
Means: interactive single-file HTML
No external libraries; responsive layout; everything inline.
Means: robustness checklist
Critical CSS, placeholder, try/catch boot, toast fallback, watchdog, smoke flags, and status variable.
!
Not yet (deliberate): lens composition across multiple subprojects
This toy isolates one “subsystem” (course placement). Next step is to add a second subsystem and compose via a wiring diagram.
!
Not yet (next extension): curing/doping constraints as extra state dimensions
The pause is a presentation control, not a physical curing law. Use essay8 for curing rules or essay13 for timer-state and resource dynamics.

Restatement of the toy model

State and dynamics (macro)

S_min = ℕ × {cw,ccw}
I = {cw,ccw}
O = ℕ
read(n,dir) = n
update((n,dir), choice) = (n+1, choice)

This is the “course-by-course” system. The animation tracks additional micro-state (brick index, pause timer) for the replay. The macro model commits a whole course per step; its pause is presentation time, not physical curing. The trajectory prefix is also stored to show history; (n,dir) alone does not reconstruct it.

Tangent-bundle intuition (discrete)

At each course-start state, the “tangent fibre” is the set of allowable next directions. In this base toy it’s always {cw, ccw}. A deterministic policy such as always-cw or alternate is a section selecting a direction. Manual mode supplies choices as you go. Random mode is a stochastic rule; its sampled run is a trajectory, not a deterministic section defined on all states.

Lens / open-system packaging (informal)

The system exposes an output (current course count) and accepts an input (direction choice). We can wire it to other systems by composing on the input/output interface.