Skip to content

Claude/determined mendel j4a8 k - #2

Open
chadsmithptd wants to merge 22 commits into
andrewmccalip:mainfrom
chadsmithptd:claude/determined-mendel-j4a8K
Open

Claude/determined mendel j4a8 k#2
chadsmithptd wants to merge 22 commits into
andrewmccalip:mainfrom
chadsmithptd:claude/determined-mendel-j4a8K

Conversation

@chadsmithptd

Copy link
Copy Markdown

No description provided.

claude added 22 commits May 28, 2026 17:45
Bare Three.js prototype with:
- 8-machine isometric shop floor with dept heat-map coloring (green→amber→red)
- Timeline scrubber (today → 6 weeks) with play/pause animation
- What-if sidebar: add evening shift, move job, schedule downtime
- Mutations instantly recompute utilization; downstream cascade effects modeled
- CSS2D floating queue badges above each machine showing live utilization %
- Overloaded machines pulse red; dept floor regions glow by area color
- serve.py: minimal static server for local iteration

https://claude.ai/code/session_01Xr3aGziV6jQNoWzjHry7ti
Switches from ES module imports to Three.js r148 UMD via cdnjs.
OrbitControls and CSS2DRenderer inlined. No server or bundler needed.

https://claude.ai/code/session_01Xr3aGziV6jQNoWzjHry7ti
…file://

Eliminates all external dependencies. Fixes 'Class constructor cannot be
invoked without new' by replacing prototype-chain CSS2DObject with proper
class extends THREE.Object3D syntax.

https://claude.ai/code/session_01Xr3aGziV6jQNoWzjHry7ti
- Sparkline canvas on each machine badge: 42-day utilization curve with today marker
- Click any machine -> drawer slides up with 3 panels:
  1. Full 42-day load chart with spike annotations and heat coloring
  2. Downstream impact: which machines get starved and at what load %
  3. Fix options comparison: do nothing / add shift / move job / both, showing days-over-85% reduction

https://claude.ai/code/session_01Xr3aGziV6jQNoWzjHry7ti
- Shop Health score (0-100) + Jobs On-Time (X/8) in drawer header
- Delta indicator shows pts gained vs base schedule
- Fix options are draggable sliders: tune shift hours 0-12h, move job 0-100%
- Each option previews its +health / +jobs badge before you commit
- Floor heat map + timeline chart update in real-time as you drag
- Drawer mutations are non-destructive: closing resets to pre-drawer state

https://claude.ai/code/session_01Xr3aGziV6jQNoWzjHry7ti
- Each fix is a card you toggle on/off — inactive cards are dimmed
- Fix types: Overtime (slider), Move Job (toggle), Split Job (slider), Downtime (slider)
- Slider only visible/active when card is toggled on
- Badge shows score preview regardless of active state
- Debounce (280ms) on all slider input events prevents browser overload
- Floor and score update only after drag settles

https://claude.ai/code/session_01Xr3aGziV6jQNoWzjHry7ti
…agging

- Drag handle at top of detail drawer lets user resize it up/down
- Sankey-style tube pipes connect machines following DOWNSTREAM map, with animated particles traveling along the paths; colors update with utilization heat
- Click-drag any machine body to reposition it on the floor; flow pipes rebuild on drop
- Flows ON/OFF toggle button in header

https://claude.ai/code/session_01Xr3aGziV6jQNoWzjHry7ti
- Left job list panel (220px) shows all jobs with name, due day, qty, and source machine
- Clicking a job highlights its machine path in 3D (dims unrelated machines) and shows a mini utilization chart with due-date band, peak load, days at risk, and machine path string
- Clicking the selected job deselects and restores full view
- Flow pipes filter to only show connections touching the active machine when a machine drawer is open; all pipes restore on drawer close

https://claude.ai/code/session_01Xr3aGziV6jQNoWzjHry7ti
The animation loop was unconditionally setting visible=showFlows on every
particle and all flowObjects each frame, clobbering applyFlowFilter's work.
Fixed by tracking _activeFlowFilter and having animateFlowParticles respect
both showFlows and the active filter when setting particle visibility.
Tubes/cones are now only toggled by applyFlowFilter, not the animation loop.

https://claude.ai/code/session_01Xr3aGziV6jQNoWzjHry7ti
applyFlowFilter now accepts null (show all), a string (single machine),
or a set object (keyed by machineId). Selecting a job calls applyFlowFilter
with the job's full machine set so only pipes on that job's path show.
Deselecting restores all pipes.

https://claude.ai/code/session_01Xr3aGziV6jQNoWzjHry7ti
Moved detail drawer from position:fixed into the CSS grid as a proper row.
The grid gains a 'drawer' row between canvas and scrubber; #app.drawer-open
sets that row to 240px. Scrubber is always visible below the drawer.
Close button now removes drawer-open from #app (was toggling a height class
on the drawer element itself, which had no effect after the CSS refactor).
Drag-to-resize now adjusts grid-template-rows directly.
Canvas renderer resizes after drawer open/close animation completes.

https://claude.ai/code/session_01Xr3aGziV6jQNoWzjHry7ti
CSS grid row collapsing was unreliable (0px row still rendered).
Reverted drawer to position:fixed with bottom:80px so it floats
above the always-visible scrubber. Close/open toggle .open on the
drawer element directly. Drag-to-resize adjusts drawer height directly.

https://claude.ai/code/session_01Xr3aGziV6jQNoWzjHry7ti
Each of the 42 days is rendered as a color-coded column (green→amber→red
based on the worst bottleneck that day). Bar height also scales with
utilization so spikes are immediately visible. Week boundaries have tick
marks with date labels. Clicking any column jumps to that day. Selected
day shows a white cursor. Hover shows a date tooltip. Timeline redraws on
schedule recompute and window resize.

https://claude.ai/code/session_01Xr3aGziV6jQNoWzjHry7ti
Bar height and color now reflect average utilization across all machines,
giving a true sense of overall shop load. A dashed white line runs above
the bars showing the single worst machine each day. Red dots on the line
mark days where the worst machine crosses the 85% critical threshold.

https://claude.ai/code/session_01Xr3aGziV6jQNoWzjHry7ti
Toggles body.light class which overrides all CSS variables to a
light blue-grey palette. Also updates the Three.js scene background
and fog color, and redraws the 2D canvas elements.

https://claude.ai/code/session_01Xr3aGziV6jQNoWzjHry7ti
Bug fix: machine drag now calls setPointerCapture/releasePointerCapture so
releasing the pointer over the drawer no longer leaves dragState stuck and
controls.enabled=false. Added pointercancel handler as safety net.

New features:
- Building walls (4 sides with cyan glow strips at top)
- ⚙ Config modal with 3 tabs: add/remove machines, resize floor, reassign
  job work centers. Apply rebuilds 3D scene, grid, and walls live.
- 4th column in detail drawer: "Transfer Work Center" lists jobs on the
  open machine with a dropdown + Move button to instantly reassign them,
  adds a moveJob mutation, and updates the schedule and job list.

https://claude.ai/code/session_01Xr3aGziV6jQNoWzjHry7ti
…CR bars

Theory of Constraints:
- Auto-identify the system constraint (machine with highest avg utilization)
- ◆ CONSTRAINT badge pulses red on that machine's 3D label
- Alert toast when the constraint shifts to a different machine

Immediate sensory feedback:
- Web Audio API synthesizes tones on every lever pull — ascending arpeggio
  for health gains, sawtooth drop for losses, fanfare for achievements
- Score floater (+N health / -N health) animates up from header on each change

Undo stack (Ctrl+Z or U key):
- Every mutation is snapshotted before it's applied
- Undo button in header, keyboard shortcuts
- Removes fear of experimentation — core to flow state

Achievement system (8 unlocks):
- First Move, Bottleneck Buster, On-Time Champion, World Class (80+),
  Elite Scheduler (90+), Clean Week (7-day streak), Constraint Solved, Undo Master
- Toast slides in from top-right with emoji + description

Critical Ratio bars on job cards:
- CR = remaining time / estimated remaining work
- Green/amber/red fill shows which jobs are at risk before they miss due dates
- Updates every time day or schedule changes

Mission strip in header:
- 4 live goals: Health 80+, all jobs on time, 7-day streak, fix the constraint
- Check marks fill in as goals are achieved

Streak counter:
- Consecutive bottleneck-free days from today
- Visual progression: cold → warm (3+) → hot/fire (7+)

https://claude.ai/code/session_01Xr3aGziV6jQNoWzjHry7ti
Extends horizon from 42 to 91 days (~3 months). Adds 10 more jobs
spanning the full window (near, mid, and long-term).

Forecast panel (📦 button in header):
- Slides up over the 3D canvas from the bottom
- Summary row: on-time / at-risk / late counts + max days late
- Sort by due date, status (worst first), or machine
- Filter to show all / late only / at-risk+
- Per-job Gantt rows: 91-column utilization heatmap, white due-date
  pin (▼), dashed projected-delivery line (green if early, red if late),
  today cursor in amber
- Click any row to jump to that machine's detail drawer
- Re-renders live when you pull levers

Projection logic: walks forward day by day accumulating free capacity
(1 - utilization) until enough is banked to complete the job load;
compares that completion day to due date for days-early/days-late.

https://claude.ai/code/session_01Xr3aGziV6jQNoWzjHry7ti
Broken ternary used single-quote-delimited strings containing single
quotes, causing a JS parse error that prevented the entire script block
from executing — blank canvas, no jobs, nothing rendered.

Fixed by replacing the broken one-liner with a plain if/else block.

https://claude.ai/code/session_01Xr3aGziV6jQNoWzjHry7ti
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.

2 participants