00 / WEBGPU ENGINE · DISPATCH LATENCY < 0.8MS
Real physics. Zero latency.
GPU-accelerated rigid, soft-body, and particle simulation via WebGPU.
SIM / RIGID-BODY-STACK
LIVE FEED
RT-0042
+Z [GRAV -9.81 M/S²] COORDINATE: CARTESIAN-ISO
● COLLISION: 01 [IMPULSE RES]
v: 3.2 m/s ANGULAR: 14.8 RAD/S
SOLVER: PGS-ISLAND-PARALLEL
SUSTAINED 60.0 FPS
SOLVER STEP 0.82 MS
ACTIVE BODIES 1,024
PIPELINE WEBGPU
01 / BUILT WITH KINETIX · FOUR SPECIALIZED SOLVERS
Engineered for complex dynamics.
Four solvers running concurrently on unified memory.
PBD KERNEL
CLOTH SIMULATION 833 MS⁻¹ · 12K NODES
VORTEX FIELD
10K PARTICLES 120 HZ · CHERENKOV SOLVER
FRACTURE SYS
DEBRIS / TOWER 0.14 MS · GPU DISPATCH
FEM CONSTITUTIVE
SOFT-BODY ELASTIC 3.2 KPA · VISCOUS SOLVER
02 / INTEGRATE · DEVELOPER TOOLCHAIN
One declarative import.
Zero boilerplate integration with automatic WebGPU context acquisition.
BUFFER: ZERO-COPY
// Dispatch rigid simulation to WASM subworker thread
import { World, RigidBody, Collider, Canvas } from '@kinetix/react';
export default function PhysicsLab() {
return (
<Canvas camera={{ position: [0, 5, 10], fov: 50 }}>
<World gravity={[0, -9.81, 0]} substeps={4} solver="island-parallel">
{/* Static ground collider */}
<RigidBody type="fixed" friction={0.6}>
<Collider shape="cuboid" args={[20, 0.5, 20]} />
</RigidBody>
{/* 10K Dynamic Bodies dispatched to GPU buffer */}
<RigidBody type="dynamic" restitution={0.7} position={[0, 4, 0]}>
<Collider shape="sphere" args={[0.5]} mass={1.2} />
</RigidBody>
</World>
</Canvas>
);
} <!-- Vue 3 Composition API with Zero-Copy State -->
<script setup lang="ts">
import { usePhysicsWorld, useRigidBody } from '@kinetix/vue';
const { world, step } = usePhysicsWorld({
gravity: [0, -9.81, 0],
backend: 'webgpu'
});
const cube = useRigidBody({
mass: 2.5,
shape: 'box',
dimensions: [1, 1, 1]
});
</script>
<template>
<KinetixViewport :world="world" @tick="step" />
</template> <!-- Svelte 5 Runes Reactive Binding -->
<script>
import { KinetixEngine, RigidEntity } from '@kinetix/svelte';
let telemetry = $state({ fps: 60, bodies: 1024 });
</script>
<KinetixEngine hz={120} bind:telemetry>
<RigidEntity type="dynamic" restitution={0.8}>
<MeshCollider model="/models/actuator.glb" />
</RigidEntity>
</KinetixEngine> // Flutter Web FFI / WASM Bridge
import 'package:kinetix_flutter/kinetix.dart';
class SimulationWidget extends StatefulWidget {
@override
_SimulationWidgetState createState() => _SimulationWidgetState();
}
class _SimulationWidgetState extends State<SimulationWidget> {
late KinetixWorld _world;
@override
void initState() {
super.initState();
_world = KinetixWorld.initialize(threads: 4);
}
} ONE API · 90 KB WASM · ZERO RUNTIME DEPENDENCIES
03 / PERFORMANCE · VERIFIED HARDWARE BENCHMARKS
Zero frame drops.
Continuous hardware measurements under peak concurrent load.
GPU SUBSTEP SOLVER CHROME 124 / M3 PRO
10,000
RIGID BODIES AT 60 FPS
48 BODIESPOINTER-REACTIVE · CLICK TO SPAWN
STEP JITTER HISTOGRAM (500 TICKS) VARIANCE < 0.02 MS
INTEGRATION SPEED
0.8ms
GPU SOLVER STEP TIME
15.8MS BUDGET RESERVED
RENDER DISCIPLINE
60 FPS
SUSTAINED FRAME RATE
0 DROPPED TICKS / HR
HIGH-REFRESH XR
120 Hz
FIXED SUB-TICK RATE
PROMOTION & QUEST 3
NETWORK WEIGHT
90 KB
WASM BUNDLE GZIPPED
RUST BINARY STRIPPED
THREAD ISOLATION
MAIN-THREAD EXECUTION TIME
0ms
DEDICATED WEB WORKERS · ZERO DOM LOCK
04 / PRICING · LICENSING MATRIX
Deterministic pricing.
Free for development. Commercial runtime requires active license.
COMMUNITY DEV
$0
1 active project
1,000 bodies / sim
WASM SIMD engine
Community support
PRO TEAMS RECOMMENDED
$29
Unlimited projects
10,000 bodies / sim
WebGPU acceleration
Deterministic sync
SCALE
20/20 SEATS IN USE
$99
Dedicated worker mesh
Headless simulation
Custom physics modules
SLA verification