Plan: Transitioning to Forward Deployed Engineer / AI Engineer
A phase-based roadmap for backend engineers moving into FDE and AI Engineer roles — decoding the title chaos, the applied LLM stack, and the interview loop.
Browser-based 3D simulation of a UHT milk plant, from standardization to ambient distribution.
Translation pending
EducationTypeScript · JavaScriptGitHub @Sophanit-KeoOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗A browser-based 3D simulation of a UHT milk plant in three.js, from standardization to ambient distribution: ten stages running live, six fault scenarios, and a guided tour. The research, design and schedule are in plan/; the build is split into phases and agents in plan/agent-plan/.
Live: https://sophanit-keo.github.io/simulation-milk-process/, deployed to GitHub Pages from master each time CI passes there. It needs a browser with WebGL 2; it is checked in Chrome and Edge.
factory.html. Sign in with a Let Report account to see the real factory live: UHT 1, 2 and 3, the lines each one feeds, and each line's status, product, lot, CIP and open troubles, as Let Report holds them. A change in Let Report shows within a second (D19, phase 9). Which UHT feeds a line, its filler, speed and pack size are edited in Let Report.
factory.html#3d opens it (D20, phase 10).The plant opens the same way every time: day 8 at 06:00, ×10, seed 81006. URL options: ?mock runs the UI on the mock snapshot, ?debug adds lil-gui and window.__scene, ?greybox shows the grey boxes instead of the hero models.
Needs Node 22.13 or later (22.x LTS or 24.x; see .nvmrc).
npm ci
npm run dev # http://localhost:5173
npm run build # production build in dist/ (CI sets BASE_PATH=/simulation-milk-process/ for GitHub Pages)
npm run preview # serves dist/
npm run check # typecheck, lint, unit tests (Vitest) and asset tests: what CI runs first
npm test # unit tests only: formulas, acceptance runs, the 60-day run, scenarios, the demo script
npm run test:assets # the 3D models and textures against their specs and budgets
npm run e2e # browser tests (Playwright, Chromium); `npx playwright install chromium` once
Performance (needs a build, see tests/perf/baseline.md):
npm run build
node tests/perf/measure.mjs # draw calls, triangles and fps at every stage
node tests/perf/measure.mjs --path 60 --headed --channel chrome # the 60 fps check: a 60 s camera path at ×1 and ×10,000
| Document | What |
|---|---|
| docs/report.md | The report, with the technical chapter |
| docs/demo-script.md | The live demo, step by step, with the numbers to expect |
| docs/video-script.md | The demo video's shots and narration |
| docs/slides.md | The presentation, slide by slide |
| plan/DECISIONS.md, plan/hand-calculations.md | Every default with its source, and every expected value the tests check |
| Path | What | Owner agent |
|---|---|---|
src/contracts/ | Types every part shares: PlantConfig, Snapshot, Command, ViewEvent, units | lead |
src/data/plant.json | Default settings; decisions in plan/DECISIONS.md | process |
src/sim/ | Simulation core: clock, event queue, models, fault scenarios. No three.js, no DOM | sim |
src/scene/ | 3D view | scene |
src/ui/, src/styles/, index.html | Screen layout and controls | ui |
public/models/, assets/ | 3D assets and their licences | assets |
factory.html, src/factory/ | The factory board: contracts (types.ts, view.ts), the Let Report client, the model, the floor's layout, the page; no three.js until its 3D view (src/factory/scene/) opens | lead, factory-client, factory-model, factory-scene, factory-ui |
tests/, e2e/ | Unit and browser tests, and the perf check | qa |
docs/ | Report, demo and video scripts, slides | lead, process |
The agents' definitions (phases 9 to 12) are in .claude/agents/.