Skip to content

Aura3D 4.3.1

Pre-release
Pre-release

Choose a tag to compare

@gchahal1982 gchahal1982 released this 26 Oct 07:25
· 2658 commits to main since this release

Superseded. This version is deprecated. Upgrade to Aura3D 4.7.12.

  • Teleoperator: showcase-teleoperator-v2 gets the generated buildings, and the shuttle pod holds up in every camera. The four building models now line the v2 street too. The pod's window openings are filled with one dark tinted cabin box in place of the generated seats and inner walls, and the Roof LiDAR and Bumper cameras, which sat inside the taller pod and showed its shell polygons, now use pod-specific offsets (PLAYABLE_FLEET.waymo.cams) in both variants. Verified on the remote runner in all four cameras for showcase-teleoperator; -v2 renders nothing in that harness even on 4.3.0's source, so it is unseen. Evidence: evidence/teleoperator/art-pass/.

  • Impact presets are one-shots that use their own life, size and spread; no more floating bubbles (engine). app.effects.spawn("spark") and every other named preset started a continuous emitter, and both spawn and burst dropped the preset's life, size and spread, so each hit spark, dust puff, ring and aura burst lived 1.2 to 2.4 s as a 5 to 14 cm glowing disc: the gold, blue, yellow and white bubbles over Iron Crown and FC. Presets now burst once with their own parameters (scale multiplies size); only an authored spec object loops. Attenuated points() no longer applies the device pixel ratio twice (2x too large at DPR 2). Contract in docs/api/vfx-presets.md, lesson R15.

  • Aura FC 3D: the ball moves like a football. Passes and driven passes launched at 20 to 28 degrees (median apex 1.28 m), so every pass was a bouncing lob. They are now weighted ground passes (2 to 4 degrees, speed from the receiver's distance), with quadratic air drag, a rest threshold for hops, dt-correct Magnus curl and an orientation that rolls v/r about the axis perpendicular to travel (quaternion, exported as the engine's ZYX Euler). Free-ball physics moved to game/ballPhysics.ts with measured-trajectory tests.

  • Game effects are one-shot bursts and no longer shake the camera by themselves (engine). createGameEffects forwarded every hit, kick and goal to app.effects.spawn, a continuous emitter that was never stopped: each event left a fountain running at its spot (26 live particles after 0.2 s grew to 190 after 3 s from four effects). That was the white and yellow clusters scattered over the FC pitch. Bound game effects now stop each emitter when the effect's duration is over (update()), and pass camera: false so the preset shake no longer stacks on game feel. The trauma layer gains maxTrauma. FC: shake only on goals, tackles and the woodwork (rotation under 0.5 degrees, settled in under 0.4 s), no shake on passes or shots, ?shake=0 and reduced-motion switch it off, smaller bursts, dust on the turf.

  • createTwoHandGrip and measureGrip in @aura3d/engine/game: a bat, club, racket or staff held in both hands. The Aura Diamond batter solver is now a library kit: two-bone IK for both arms onto grip points gripSpread apart on the object's axis, the elbow orbit and forearm twist that roll the object onto the wanted direction, hand-off (release lets the top hand go and relax), left-handed mirror, deterministic step/state/reset, bones for the engine (twoHandGripBonesForEngine: objects, not tuples), and ZYX/XYZ quaternion conversions (route nodes use ZYX). measureGrip reports knob-to-bottom-palm and top-palm-to-axis per phase (<= 0.06 m, 0.08 m follow-through) and handCentroid measures against the CPU-skinned drawn hand. Aura Diamond runs on the kit with its numbers unchanged (a golden test replays 112 recorded solves to 1e-12). Docs: docs/api/motion-two-hand-grip.md, recipe 7, lessons M17.

  • Hoops dribble: the ball bounces under the hand, in every pose. In the owner's 4.3.0 frames the ball sat on the floor about 0.4 m beside the handler while the hand hung at hip height. The ball now always rides the palm as drawn (also when the athlete is not in a dribble pose), its XZ is the palm's XZ (a runner's ball lands ahead along travel by at most 0.10 m, never beyond 0.25 m from the palm), the standing handler crouches 0.36 m with deeper waist bend so the palm reaches 0.5 m at the bounce, and the running profile lowers the palm to about 0.54 m. measureHandBall now enforces ball-under-hand (XZ), palm touching the ball at the meet, palm height at the floor contact and maximum XZ offset, for standing and running (RUNNING_HAND_BOUNCE_LIMITS).

  • Bunker Zero enemies face the player, and the library has faceTowards. Every enemy was drawn with its back to the player: the sim yaw treats -Z as forward and the Meshy GLBs look down +Z, so each actor was exactly 180 degrees off. @aura3d/engine/game now exports faceTowards, yawToFace, facingError, visualHeading and wrapAngle (a per-model forward axis plus a turn rate; docs/api/motion-facing.md). Bunker Zero declares each model's forward axis, turns enemies toward the player at a limited rate, and the alert state now faces the player as well. A remote probe stages each enemy kind in front of the player and prints the angle between where it looks and the player.

  • The Hoops, Diamond and Links athletes are rebuilt, not patched. The 4.3.0 repair gave stretched triangles their own rigid vertices, which passed the numeric check but left white hairline tears on the shorts and shoulders. tools/aura-athletes/rebuild-athlete.ts now rebuilds each athlete in the straight pose its skeleton assumes, like the FC fix: a clean jersey tube measured from the old torso, thigh, shin, shorts or pants, socks, sleeves, arm tubes and hands with smooth weights; head, hair, eyes and shoes keep their geometry. The forearm follows shoulder, elbow and the games' calibrated palm point, so the dribble, bat and club grips keep their palm points (within 1 cm). Zero triangles stretch past 1.6x in any shipped clip, with no cuts or splits.