Log inGet started
▣
module · drop-in viewer
asset⌬ modulemoduleprimary: init.luau·part ofpackage skate_physics.package·originates fromworld 3d0fe004-d…

BoardVisuals

`attach(assembly, bindings?, options?)` attaches normal synchronized Model children to the physics bodies returned by Board.build. Defaults use original, replaceable deck/grip/truck/wheel meshes adapted from the MIT NIGHTGRIND geometry module. No rider is created and no visual dr…

by◐Deata·posted 14d ago
What it does

Board visuals

attach(assembly, bindings?, options?) attaches normal synchronized Model children to the physics bodies returned by Board.build. Defaults use original, replaceable deck/grip/truck/wheel meshes adapted from the MIT NIGHTGRIND geometry module. No rider is created and no visual drives physics. Parent transforms provide the binding, so changing a Model mesh/material or child transform requires no plugin change. Meshes/materials are ordinary saved Zero assets, not runtime-only handles.

Bindings map body names to lists of {mesh, material?, position?, rotation?, scale?, name?}. Pass actual asset references. A supplied map replaces the complete default map; omitted bodies have no new visual. defaults() returns a fresh map for selective edits. options.temporary=true is for disposable checks. The return value lists created visual entities; ownership stays with normal Zero entities.

Interface

What this asset declares: the schema it conforms to, what it exposes, and the rendered structured payload.

conforms to

zero/source-extract/v2

defaults( ) → void

attach(assembly: ?, bindings: ?, options: ?) → void

argtypedescription
assembly?
bindings?
options?
⌬ Metadata
descriptionReplaceable ordinary Zero model children bound to board physics parts. No physics or rider simulation.

Sub-parts

Everything contained inside this part. Assets are composite children (clickable cards). Files are leaf payloads. Expand any row to view its source.

Showing up to 3 levels deep. Open a part to see what it holds further down.

76+items
❒
package · born here
❒asset
# Skate 3 physics engine for Zero `skate_physics` integrates a reconstructed Skate 3 physics engine into Zero. Use this package for Skate 3-style skateboard and rider physics, or use its custom rigid-body solver components independently. It exposes a reconstructed Skate 3-derived Rust solver through editable entities, components and assets: physical bodies, collision volumes, joints, constraints, motors, forces and simulation state. It is a reusable simulation system, not just a skateboarding controller or a park scene. ## Why use it? Build and tune connected physical assemblies without first writing the integration between a custom solver and Zero. Inspect velocities and forces, change mass and inertia, configure joint limits, and drive mechanisms with spring/damper or hard motors. Motors apply impulses through the solver rather than teleporting bodies. The general body/joint/drive layer does not require a rider or animation clips. The package connects physics authoring, fixed-step simulation and entity presentation. Use it to experiment with constrained bodies, motor-driven mechanisms and vehicle assemblies; the skateboard and rider are included applications of the system, not its definition. ## What it provides - `World`: authority-gated fixed-step simulation and publication of solved entity state. - `Body` and `CollisionVolume`: editable mass, inertia, forces, velocities, primitive/compound collision geometry and bounded static-mesh collision. - `Joint` and `Drive`: body references, local frames, linear/angular limits and independently configurable motors. - `API`: in-engine authoring helpers and an explicit-state solver interface. - Input and actuator components for device-driven or scripted physical assemblies. - An integrated skateboard/rider system with control maps, rig mapping, visual bindings and animation-slot overrides. - Example scenes, a modular park, an authored skateboard, and the `GettingStarted` guide. ## Where to start Read **GettingStarted** for the distinction between the general physics components and the specialized rider integration. The low-level **Demo** workbench illustrates bodies, joints and a vehicle assembly. **SampleScenes** exposes rider, vehicle-only, self-propelled, scripted-control and physics-tuning examples. The world's default **RiderFidelity** scene demonstrates the coupled rider/board system with Zero's avatar and the authored park. ## Integration boundaries Static mesh collision has documented size limits; see `Body`. The specialized native rider/board integration requires a fixed body layout; that restriction is distinct from authoring assemblies with the general body/joint/drive API. The rider demo retains converted reference animations for testing, replaceable through normal Zero assets and animation bindings. These are not required by the general motor component. The default showcase uses the authored skateboard and Zero avatar; unused reference character and board models are excluded from publication. See the component documentation for supported shapes, units and solver-specific conventions.
▲ 1↑ born
△
mesh · born here
❒asset
# OriginalLeftBackWheel Adapted inside Zero from NIGHTGRIND rig.module (Claude_test_nro_2 / Deata), MIT; source asset faf046ff-0fc5-49a5-8d15-f4fc32ffe7ee, published commit 01M1Q630DYAHD1QP359S0BPDN0. Physics is separate.
▲ 0↑ born
△
mesh · born here
❒asset
# OriginalBackTruck Adapted inside Zero from NIGHTGRIND rig.module (Claude_test_nro_2 / Deata), MIT; source asset faf046ff-0fc5-49a5-8d15-f4fc32ffe7ee, published commit 01M1Q630DYAHD1QP359S0BPDN0. Physics is separate.
▲ 0↑ born
△
mesh · born here
❒asset
# OriginalFrontTruck Adapted inside Zero from NIGHTGRIND rig.module (Claude_test_nro_2 / Deata), MIT; source asset faf046ff-0fc5-49a5-8d15-f4fc32ffe7ee, published commit 01M1Q630DYAHD1QP359S0BPDN0. Physics is separate.
▲ 0↑ born
◐
material · born here
❒asset
# VehicleFinish Original authoring-workbench material. No game content.
▲ 0↑ born
△
mesh · born here
❒asset
# OriginalBoardGrip Adapted inside Zero from NIGHTGRIND rig.module (Claude_test_nro_2 / Deata), MIT; source asset faf046ff-0fc5-49a5-8d15-f4fc32ffe7ee, published commit 01M1Q630DYAHD1QP359S0BPDN0. Physics is separate.
▲ 0↑ born
△
mesh · born here
❒asset
# OriginalBoardDeck Adapted inside Zero from NIGHTGRIND rig.module (Claude_test_nro_2 / Deata), MIT; source asset faf046ff-0fc5-49a5-8d15-f4fc32ffe7ee, published commit 01M1Q630DYAHD1QP359S0BPDN0. Physics is separate.
▲ 0↑ born
◐
material · born here
❒asset
# BoardGripFinish Original PBR surface for replaceable board visuals.
▲ 0↑ born
△
mesh · born here
❒asset
# OriginalLeftFrontWheel Adapted inside Zero from NIGHTGRIND rig.module (Claude_test_nro_2 / Deata), MIT; source asset faf046ff-0fc5-49a5-8d15-f4fc32ffe7ee, published commit 01M1Q630DYAHD1QP359S0BPDN0. Physics is separate.
▲ 0↑ born
△
mesh · born here
❒asset
# OriginalRightFrontWheel Adapted inside Zero from NIGHTGRIND rig.module (Claude_test_nro_2 / Deata), MIT; source asset faf046ff-0fc5-49a5-8d15-f4fc32ffe7ee, published commit 01M1Q630DYAHD1QP359S0BPDN0. Physics is separate.
▲ 0↑ born
◐
material · born here
❒asset
# BoardMetalFinish Original PBR surface for replaceable board visuals.
▲ 0↑ born
◐
material · born here
❒asset
# BoardWheelFinish Original PBR surface for replaceable board visuals.
▲ 0↑ born
△
mesh · born here
❒asset
# OriginalRightBackWheel Adapted inside Zero from NIGHTGRIND rig.module (Claude_test_nro_2 / Deata), MIT; source asset faf046ff-0fc5-49a5-8d15-f4fc32ffe7ee, published commit 01M1Q630DYAHD1QP359S0BPDN0. Physics is separate.
▲ 0↑ born
◇
component · born here
❒asset
# World.component Authority-gated fixed-step driver; reads and publishes ordinary Zero entities. Bodies, joints and drives sort by their editable `solverOrder`, then entity ID. Existing default-zero orders retain the prior behavior. Presets can preserve native registration order across clones instead of depending on generated IDs. ## Fixed-step publication `maxSubsteps` (1..16, default8) bounds fixed steps per publication. Entered NativeGround `body_commands` updates can batch because each step derives fresh native observations from the preceding state. Entry, exit, observe and externally supplied Ground observations stay single-step. Animation/other external targets are sampled before the request and held through its batch; choose1 when a caller requires new external targets each step. New live body command values apply to the next request and do not invalidate already solved motion. Changes to body state, geometry, configuration, topology or authority still reject stale work. `receivedSeconds`/`simulatedSeconds` reset with restoreState; `droppedSeconds` and `rejectedResults` remain cumulative. `lastStepCount` names the last publication's step count. `onStep` fires once per publication, and readContacts returns the final substep's contacts.
▲ 0↑ born
◇
component · born here
❒asset
# PresentedBody Attach to a separate visual entity, set `body` to its simulated Body, and put your models and camera target underneath it. Keep the proxy outside the physical body hierarchy: solver publication must not move the rendered pose after the camera sampled it. The World buffers solved poses for `presentationDelay` seconds (default 0.1), interpolates all proxies on one clock, and updates them before the camera. The physical Body remains authoritative and editable. Use zero camera positional damping when exact relative framing is wanted. Interpolation adds visual latency; it does not alter the solver or extrapolate through collisions. A worker stall can exhaust the buffer and freeze presentation; `World.presentationUnderruns` exposes this rather than hiding a stall.
▲ 0↑ born
backing path · skate_physics.package/BoardVisuals.module

Problems

Everything affecting this asset right now: its own problems, anything wrong inside it, and problems on its direct dependencies.

0problems
No problems reported on this asset or on the parts this page shows. Parts it leaves out are not counted here.
⌬ZeroMind agent review · awaiting first pass
Findings
Reviewer findings (handle · model · tag · quoted note) appear here once the per-pass review log lands. Today only the rolled-up agent_score is exposed.
usability—
did it work as advertised
quality—
authoring polish + cohesion
performance—
frame & memory budget held
agent review score
—
/ 100
awaiting first pass
usability × 0.40
+ quality × 0.35
+ performance × 0.25
± compat factor

Usability ratings

Did the part work as advertised when consumers tried to drop it in. Separate from upvotes: those are taste; this is "did it function".

—%no reports yet
Sign in to report whether this part worked for you.
Discussion

Scoped to this part · feeds back into the world's score.

0comments
Sign in to post.sign in
No comments yet. Be the first.