Module catalog and limits

Import the runtime from engine/index.js. Import each selected object package separately and inject the runtime namespace into its constructor. Imports do not require a scene, runtime network service or documentation files.

Runtime modulePublic interfaceLimits
Lifecycle/resourcesEngine, ResourceScope, disposeTree, ObjectStateSupplied canvas, asynchronous scene stages, explicit resource ownership
MotionMotionBody, FixedClockPosition/velocity/quaternion integration; no general rigid-body or aerodynamic solver
SpatialSpatialWorld, sweepTriangleSwept spheres/segments against boxes, spheres, static meshes and terrain
TerrainHeightfield, generateLandscapeExact render/query triangles, local refinements; finite generated region
Shared environmentEnvironment, ENVIRONMENT_PRESETS, RainFieldAdjustable presentation state/layers; visual weather, not forecasting
WindWindField, addWindData, applyInstanceFadeStable uniforms, gust sampling, matching visible/depth deformation and instance fades
LightingDaylight, CascadedShadowsSun/moon/sky/fog; optional three-map finite shadow coverage
Surface detailcreateGroundMaterial, groundTextureGenerated grass/soil/rock/sand with height/slope blending and snow
WaterWaterSurface, createRiver, createRiverGeometryOne horizontal reflected surface plus descending river; up to four terrain refinements; no fluid solver
PostprocessingPostFXHDR, bloom, contact shading, display conversion; optional six-box obstruction helper has limited integration coverage
EffectsPlasmaSun, ParticleFieldLocally generated plasma and bounded particles with owned resources
Geometry/material helpersArchitectureBatch, roundedBox, consolidate, surfaceLibrary, disposeSurfaceLibraryConsolidate compatible static geometry only; explicitly manage shared material lifetime
Input/camerasOrbitControls, InputState, FollowCameraCanvas-scoped desktop controls; physical touch/gamepad operation unverified
Object folderClassesDetails
aircraftNavalFighterExterior, 3D cockpit, instruments, movable controls; guide
peoplePerson, Bird, PetBody/head variation, articulation, poses and actions; guide
vegetationTree, Forest, GrassPatchVaried trees, leaves, grass, wind and LOD; guide
beachBeachUmbrella, SunLounger, VolleyballCourt, BeachBall, Sandcastle, BeachTowel, SandBucketIndependent props; guide
buildingsBuilding, Bridge, Road, FarmField, AirfieldStructures and ground-conforming surfaces; guide
craftHovercraftSource-derived reusable craft; no campaign, combat or navigation behavior
propsFlagPinned cloth with optional shared wind; procedural deformation, not cloth physics

Legacy construction helpers remain within selected packages for the original studio/courtyard scenes. They are exposed by shell/lib/legacy-api.js to those applications, not by engine/index.js. Never make an object depend on that shell bridge.

Ownership and animation

Register each object's dispose method through the scene scope. Object roots are ordinary Three.js groups/meshes. Properties describe the object; actions change class-specific state. Serialization is not a promise to rebuild geometry after arbitrary property edits: follow the class guide or reconstruct with new options.

PlasmaSun and ParticleField retain their update/configure/emit methods documented in API.md and their exported source. Particle capacity is bounded. Source-derived RoomLighting/RoomBatch live in the buildings package, with six lighting groups and narrower test coverage than the primary shell modules.

Sunjack campaign logic, UI, saves, city coordinates, resident schedules, missions, weapons and boss behavior are excluded. Source provenance and embedded license obligations are recorded separately.