Build Log
Corpus Workshop: real-image backdrop, perf fixes, and a drag-hand overlay
August 2, 2026
Chased three.js/R3F performance regressions to their real root causes, swapped the live-lit 3D room for a real background image, and replaced an abandoned primitive-geometry robotic hand with a generated image overlay.
Timeline
What shipped
Removed MonitorFrame bezel mesh entirely — panel now floats as a self-lit hologram over a real background image
PopOutPanel.tsx — pop-out-of-monitor hover/click interaction, with a real bail-out fix for a permanent per-frame position write that caused a lag regression
DragHandOverlay.tsx — a generated robotic-hand image tracking drag position, CSS-mirrored for both drag directions, replacing an abandoned 3D primitive-geometry attempt
ResponsiveCamera.tsx — holds horizontal FOV constant across aspect ratios, fixing a real bug where narrower/squarer screens (1280x1024) cropped the side panels out of view
Fixed a real Postgres foreign-key violation in promote.ts — ensureRelationshipType() creates missing relationship_types rows instead of failing on any AI-generated relationship phrase that didn't exactly match a pre-seeded slug
Parallelized page.tsx's two independent DB queries (Promise.all), cutting one full Neon round-trip from TTFB (855ms -> 695ms, confirmed via a follow-up trace)
Compressed 3 background/hand images from a combined ~8MB down to ~373KB via sharp/WebP
Centered and re-themed the workshop header (title + counter) into the scene's own cyan/HUD language
Recolored drag-hint labels from red/green stoplight colors to the scene's actual cyan/amber palette
“the hand is just so bad looking, it looks like just a bunch of cylinders and shapes. no definition and depth... we might need to scrap this approach, if this is the best we can do”