2026 04 03_twod_twopointfive_isometric_plan - mark-ik/graphshell GitHub Wiki
Status: Active follow-on plan
Scope: Extracts the projection-mode lane from 2026-02-24_physics_engine_extensibility_plan.md into a narrower execution plan for TwoD, TwoPointFive, and Isometric, without assuming full reorientable 3D.
Related:
2026-02-24_physics_engine_extensibility_plan.md2026-04-03_layout_backend_state_ownership_plan.md2026-04-03_wasm_layout_runtime_plan.md2026-04-03_layout_transition_and_history_plan.md2026-04-10_vello_scene_canvas_rapier_scene_mode_architecture_plan.mdview_dimension_spec.md2026-02-27_viewdimension_acceptance_contract.md2026-04-02_scene_mode_ux_plan.md../aspect_render/render_backend_contract_spec.md
The canonical ViewDimension contract currently covers TwoD and generalized ThreeD, but the
most achievable next lane is narrower:
- preserve 2D layout truth
- derive ephemeral
zplacement fromZSource - add projection/render behavior for
TwoPointFiveandIsometric - keep full free-camera
Standard3D as a later, separate problem
This lane depends on the shared persisted carrier described in
2026-04-03_layout_backend_state_ownership_plan.md. It does not depend on the runtime-loaded
guest layout work in 2026-04-03_wasm_layout_runtime_plan.md, though projection modes should be
able to consume either built-in or guest-computed 2D layout truth later.
Architecture alignment (2026-04-10):
- the multi-layer scene/render substrate is now defined in
2026-04-10_vello_scene_canvas_rapier_scene_mode_architecture_plan.md, -
TwoPointFiveandIsometricremain projection modes over canonical 2D layout truth, - those projection modes now target the shared projected-scene + Vello world-render path,
-
Standardremains architecture-only and is not part of this milestone.
- a hard requirement to move to wgpu before
TwoPointFiveorIsometriccan exist - turning projection modes into a new source of graph truth
- using this plan to solve full free-camera 3D or arbitrary scene navigation
- making runtime-loaded WASM layouts a prerequisite for projection work
TwoPointFive and Isometric should behave as projection modes over 2D layout truth, not as a
different source of graph truth.
- Define
TwoPointFiveandIsometricas modes that preserve(x, y)layout state. - Keep
zderivation ephemeral and recomputable fromZSourceplus node metadata. - Preserve the per-
GraphViewIdownership model fromview_dimension_spec.md. - Retain deterministic degradation to
TwoDif the projection path is unavailable. - Route mode-switch animation/history through
2026-04-03_layout_transition_and_history_plan.mdrather than inventing projection-specific one-offs.
- Unsupported projection path degrades to
TwoDwith diagnostics and no cross-pane impact. - Switching projection modes preserves the underlying 2D layout truth.
- Projection-mode selection/restoration survives snapshot roundtrip through the shared carrier.
TwoPointFive is the lowest-risk projection mode because it keeps a fixed camera and a mostly 2D
interaction model while adding depth cues.
- Implement a fixed-camera projection pass for node/edge rendering through the shared projected-scene + Vello world-render path.
- Keep pan/zoom ownership aligned with existing 2D camera behavior.
- Ensure selection, hover, and hit testing remain continuous under projection.
- Expose diagnostic evidence for mode enter, mode exit, and degraded fallback.
-
TwoPointFivepreserves selection and hover continuity. - Pan/zoom behavior remains aligned with 2D expectations.
- Entering and leaving
TwoPointFiveemits diagnosable mode-resolution evidence.
Isometric is more semantically ambitious than TwoPointFive but still bounded because layer
placement can remain a deterministic projection of 2D positions plus quantized depth.
- Define layer quantization rules for
ZSourceinputs such as BFS depth, UDC level, or recency. - Render the same underlying graph with a fixed isometric projection on the shared projected-scene + Vello world-render path.
- Preserve label, hover, and selection semantics across layer separation.
- Keep the mode within the current graph-view interaction contract rather than requiring a separate 3D navigation model.
- Layer assignment is deterministic for the same graph state and
ZSource. - Isometric mode preserves active selection and focus-routing behavior.
- Returning to
TwoDdiscards derivedzwithout disturbing(x, y)positions.
This plan should not quietly grow into a full 3D renderer effort.
- Define the explicit boundary between projected 2.5D / isometric rendering and full 3D scene navigation.
- Keep all mode transitions lossless with respect to underlying 2D layout truth.
- Require a separate authority before adding orbit, tilt, true 3D camera
persistence, or a non-projected
Standardrenderer path.
- Projection modes do not require full 3D navigation semantics.
- Degradation to
TwoDis explicit and diagnosable. - Full 3D work can remain deferred without blocking
TwoPointFiveandIsometric.
This plan is complete when Graphshell can render TwoPointFive and Isometric as stable,
per-view projection modes over the existing 2D layout truth, with deterministic degradation to
TwoD, targeting the shared projected-scene + Vello world-render path, and
without pretending that full reorientable 3D is already solved.