Skip to content

feat: add Workshop tab with 3D hex-tile visualization - #1

Open
jhillbht wants to merge 2 commits into
mainfrom
feat/workshop-tab-mvp
Open

feat: add Workshop tab with 3D hex-tile visualization#1
jhillbht wants to merge 2 commits into
mainfrom
feat/workshop-tab-mvp

Conversation

@jhillbht

Copy link
Copy Markdown

Summary

  • Add a passive Workshop tab to ClawBox that embeds Vibecraft2's 3D hex-tile scene as an in-app observability view
  • Vendor and adapt 38 Vibecraft2 core modules (Three.js scene, hex grid, stations, character animations, event system) into src/workshop/
  • Bridge existing chat/tool SSE callbacks into workshop scene animations via EventBridge + ClawBoxEventTap
  • Lazy-load the workshop view with code-split vendor-three chunk (557 KB / 140 KB gzipped)

What it does

When a user sends a chat message or triggers tool calls from the Chat view, the Workshop tab reacts in real-time:

  • Character walks to the matching station (Read→Bookshelf, Edit→Workbench, Bash→Terminal, etc.)
  • Tool activity panels and zone notifications appear
  • Reasoning blocks trigger thinking animations
  • An activity feed overlay shows events as they stream in

This is a passive viewer — no prompt entry from the Workshop tab in v1.

Files changed

  • 7 existing files modified (App.tsx, useChat.ts, locales, vite.config.ts, package.json)
  • 38 new files under src/workshop/ (scene, entities, events, bridge, components, store, utils)
  • 8,461 lines added

Test plan

  • npm run build:frontend passes (verified)
  • tsc --noEmit passes with 0 errors (verified)
  • Workshop tab appears in sidebar
  • Clicking Workshop renders 3D hex grid scene
  • Sending a chat message from Chat view triggers Workshop animations
  • Tool start/end events move character between stations
  • Activity feed shows events in real-time
  • Rapid tab switching does not leak memory
  • Window resize updates canvas correctly

🤖 Generated with Claude Code

Jordan Hill and others added 2 commits March 28, 2026 14:48
Vendor Vibecraft2's core Three.js scene into src/workshop/ and embed it
as a passive observability tab in ClawBox. The workshop reacts to
existing chat/tool SSE events via an event bridge that translates
streaming callbacks into scene animations (character movement between
stations, tool activity panels, spawn beams, zone notifications).

- Add Workshop sidebar nav item with lazy-loaded view
- Vendor and adapt 38 Vibecraft2 modules (scene, entities, events, utils)
- Create EventBridge + ClawBoxEventTap to forward useChat callbacks
- Add WorkshopCanvas (Three.js lifecycle), FeedOverlay, Controls components
- Add Zustand workshop store for feed items and settings
- Code-split three.js into vendor-three chunk
- Add en/zh locale keys

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Pins esbuild and updates vite lockfile resolution.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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