Workshop application

Serve shell/index.html through static HTTP. The application imports the runtime and optional object packages; it is not part of the engine. All UI, routes and choreography are local to shell.

ScenePurposeControls
Model studioLoad, inspect and interact with portable object packagesAdd/replace/remove, package loading, drag/scroll, properties and actions
CourtyardArchitecture, water, birds, fabric and lightingDrag/scroll, time and water controls
Spatial labHeight-aware motion around raised geometryGuided initially; WASD/arrows, R/F elevation; drag/scroll
FlightFighter/cockpit, generated landscape, structures, vegetation and shared environmentGuided initially; W/S pitch, A/D roll, Q/E yaw; throttle; V pilot/chase; G gear
BeachPeople, activities, umbrellas, lake waves and ground-level inspectionDrag/scroll; location presets; shared weather, wind and time controls

Flight and cockpit

Pilot view uses the aircraft's 3D camera mount. Drag to look around; Home recentres. Click tagged cockpit switches or use the corresponding panel controls. Electrical power, avionics, lighting, throttle, gear and canopy commands change the object and instruments. Displays show sampled speed, altitude, heading, attitude, climb/descent and terrain clearance. This is a representative F/A-18E-inspired cockpit, not an operationally exact avionics simulation.

Throttle controls a simple desired speed with acceleration and wind drift. The app supplies steering; MotionBody/SpatialWorld integrate full 3D motion and approximate sphere contacts. The single 7 m contact sphere approximates the fuselage region and does not precisely cover every wing/nose/tail position. This is not detailed aerodynamics, mesh-exact aircraft collision or a crash simulation. The 8 km finite region resets the aircraft at its boundary/altitude envelope. The guided route follows the river corridor and queries terrain clearance.

Explore selects beach, airfield, mountains, river, village or woodland. This temporarily holds the aircraft and activates an orbit camera. Choose chase/pilot or guided flight to return. The separate Beach scene provides much closer people/activity inspection. Its Explore panel links to a body/joint fixture with down, sideways and overhead poses and skinny/regular/bigger builds.

Flight and Beach load the bundled authored people through an application-owned asset cache. The body/joint link opens the authored-person fixture. Beach uses close shadow coverage; flight restores wider coverage when leaving ground-level inspection. Model Studio uses object-owned definitions and starts with an authored person; the older Courtyard retains its original modeling examples. See MODEL_STUDIO.md for loading future packages.

The beach choreography schedules nearby visible people every frame. At High quality, visible people beyond 35 m update at a staggered 18 Hz and offscreen people at 6 Hz; Medium and Low use shorter full-rate ranges and lower distant rates. Explicit walking targets stay at full rate. Paused inspection refreshes all people immediately, and props/environment continue using their shared wind state. This policy belongs to the shell; each object class still performs its full update whenever called. The engine supplies the final world-matrix update before rendering.

Environment and display

The diagnostics show median recent CPU frame work and rendering/resource counts. They are not FPS or completed GPU timing. Shadow/reflection work is included; compilation may inflate startup values. Multiple simultaneously rendering browser fixtures can affect observed performance.

Maintenance

UI belongs in app.js; scenes and world composition belong in shell/scenes and shell/world. Shared services belong in engine/src. Object geometry/state/actions belong in independent objects/<package> folders. The application-side legacy-api bridge is limited to older fixtures such as Courtyard and is not an engine API. Model Studio uses the engine API directly and consumes package-local studio.js definitions.

Camera and controller input (0.2.2)

Model Studio supports mouse/keyboard pan and fixed-position free look. Standard Xbox-style controllers operate Studio camera/model transforms and Flight steering, throttle, views, gear, flaps and lights. The controller panel reports readiness and exposes mappings, sensitivity, deadzone and pitch reversal. Menu/Space pause; camera controls remain available while paused. See CAMERA_AND_CONTROLLER.md and FLIGHT_CONTROLLER.md.