Repository navigation
Arcane v0.23.0
[0.23.0] - 2026-02-28
Added
spawnBurst(x, y, opts)— self-destructing particle burst with automatic Rust emitter lifecycle management; emitscountparticles overdurationseconds then cleans up when all particles die. Replaces ~70 lines of manual emitter bookkeeping.getManagedBurstCount()— returns number of active managed bursts (for testing/debugging)trackTarget(getTarget, opts)— declarative camera tracking; set once, runs automatically each frame viacreateGame(). Acceptszoomas number or getter function. Replaces per-framefollowTargetSmooth()boilerplate.stopTracking()/isTracking()— control and query declarative camera tracking statewithScreenSpace(fn)— push/pop screen-space context so all draw calls inside default toscreenSpace: true. ExplicitscreenSpaceon individual calls always wins. Wired intodrawSprite,drawText, all 4 UI primitives, and all 10 shape functions.isScreenSpaceActive()— query whether awithScreenSpacecontext is activedrawBody(bodyId, opts)— draws a sprite centered on a physics body's position/rotation; simplifies the commongetBodyState()+drawSprite()pattern- Auto-clamp delta time — 250ms hard cap in Rust; optional
maxDeltaTimeinGameConfigfor per-game tighter caps
Changed (BREAKING)
- Coordinate system now top-left origin —
(0, 0)is the top-left corner of the screen, matching web canvas, Unity 2D, and Godot conventions. Camera position represents the viewport's top-left corner in world space.autoCameraoption removed fromcreateGame(). All screen↔world math simplified. All demos and documentation updated. sdfOffset/sdfRepeatnow take Vec2 —sdfOffset(shape, x, y)→sdfOffset(shape, {x, y});sdfRepeat(shape, x, y)→sdfRepeat(shape, {x, y})for consistency with the rest of the SDF API
Fixed
- Physics bounce — restitution combining changed from
min()tomax()so the bouncier surface wins (matching Box2D/Rapier). Fixed speculative contact bias cancelling out bounce impulse. - Glow shader — moved spread→intensity conversion from WGSL to TypeScript layer; shader uses clean
exp(-d * intensity)formula
Removed
- Legacy physics solver — removed single-contact solver (~250 lines); manifold solver (TGS Soft) is now the only path
Install: cargo install arcane-engine