-
Notifications
You must be signed in to change notification settings - Fork 0
Engine comparison: two engines side by side with synchronised cameras and matched components #4
Copy link
Copy link
Open
Labels
area: sceneThree.js scene, geometry, cameras, renderingThree.js scene, geometry, cameras, renderingarea: uiControls, panels, layout, interactionControls, panels, layout, interactionenhancementNew feature or requestNew feature or requestfeatureA new user-facing capabilityA new user-facing capabilitypriority: mediumImportant, after the high itemsImportant, after the high itemssize: XLMulti-week, should be split into sub-tasksMulti-week, should be split into sub-tasksv0.2.0Planned for the v0.2.0 releasePlanned for the v0.2.0 release
Milestone
Description
Activity
Metadata
Metadata
Assignees
Labels
area: sceneThree.js scene, geometry, cameras, renderingThree.js scene, geometry, cameras, renderingarea: uiControls, panels, layout, interactionControls, panels, layout, interactionenhancementNew feature or requestNew feature or requestfeatureA new user-facing capabilityA new user-facing capabilitypriority: mediumImportant, after the high itemsImportant, after the high itemssize: XLMulti-week, should be split into sub-tasksMulti-week, should be split into sub-tasksv0.2.0Planned for the v0.2.0 releasePlanned for the v0.2.0 release
Seven engines in one app invite the obvious question: what is actually different between a turbojet and a turbofan, or between a V8 and an inline-four? Right now the answer requires switching engines and remembering what you saw. A comparison view puts two engines next to each other with the same camera and the same component lit up in both.
What is needed
A split view showing two engines side by side, with:
Success criteria
Suggested approach
EngineScenecomponent would need to be split into a scene instance class and a thin React wrapper; do that refactor first as its own pull request.lib/engine/engine-data.ts. Turbine engines already share ids (fan, compressor, combustor, turbine, nozzle, casing, shaft), and piston engines share theirs. Add an explicit cross-family map withnullfor no counterpart.ViewerStateas the shared state and addcompare: { engine: EngineType } | null. The slider, cutaway, labels and quality settings then apply to both halves without new plumbing.Out of scope
Comparing more than two engines at once, and overlaying the two models in one viewport.
Touchpoints
components/engine/engine-scene.tsx,app/page.tsx,lib/engine/engine-data.ts,app/globals.css,scripts/check-explosion.mjs