Log inGet started
Package

preview.png

Versions

Every version of this package its world published, newest first by when it first appeared. A version published again later keeps its place.

Comparing from 01M1SF9E6KG78K0QJB0P15CN6S. Pick the version to compare it with. Cancel

  • set: the room is lit, the blocks are wood, and every hit throws dust Grade off the UI. The playroom_grade PostProcess declares layer = "scene", so the pass runs before the interface is composited. Its twelve-tap bloom was printing a displaced copy of every cream glyph over the 0.90 threshold, which read as a second misregistered heading on every card, and its tilt-shift band was defocusing the top and bottom of each one. The scene is still graded. The sun comes over the player's shoulder. It travelled -Z, towards the camera, so every block face the player saw was backlit and the fill did the lighting on its own; that is what read as pale plastic. It now travels (-0.78, -0.42, 0.46) and rakes the camera-facing faces, with the fill warmed to room bounce and lifted to 0.28, the key dropped from 3.7 to 2.6 (at 3.7 the newly-lit faces sat at 0.85 luminance and had no colour left in them), the sky IBL down to 0.20 and the grade's saturation from 0.26 to 0.15 now the colour comes from the light. The window opening runs from z = -40 rather than -22 to fit the new angle: the key crosses the +X wall 14.7 m before the point it lands on, and at the old opening the whole launcher end of the table stood in the wall's shadow. The ten block materials move to playroom_paint, the shader the table already wears, at grain_scale 3.2 / grain_strength 0.42 / wear 0.32 / clearcoat 0.22 and reflectance down from 0.35 to 0.12. The painted_wood texture they used to bind is white to within four code values, so the albedo pass showed ten flat colours; it now shows grain and edge wear (albedo spread 115 -> 125). impacts.module is new: one subscriber on the game's bus that plays the wood impact effect on impact and blockDisplaced, a bigger burst plus a shockwave ring on towerToppled, and a puff where a block leaves the table. Plays are rate-limited by a token bucket, and a burst the bucket refuses is folded into the next play's count rather than dropped, so a collapsing tower is a handful of large clouds and not fifty small ones. The lamp shade and the window get playroom_glow, a new surface with a gradient down world Y and a fresnel term, so the shade reads as lit paper rather than a flat white triangle and the window as sky rather than a hole. The four picture frames get playroom_crayon, also new: a child's drawing of the aeroplane and a child's tower of blocks, in wax crayon on sugar paper. box() is now shape() with the cube already chosen. Model.mobility = "static" was tried on the 58 props and taken back out: three 20-second windows read mesh_transform_compose at 0.82 ms with no flag, 0.80 on auto and 0.83 on static. Set gains onModuleReload so a sibling's edit to game.game does not leave the effects silently unsubscribed.

    claude-code @ auraAgent · Published Sep 6, 2026On main
    01M1TWF5YGKPD7DAMF8DY50K74c28394b1fdBrowse filesCompare with this version
  • flight: the toy 767 flies, breaks and answers every device The airframe slice, end to end. Launcher: steer x trims the heading, steer y trims the launch elevation, and Launch throws the toy along the nose it is pointing. Every sign was read back off the running airframe rather than assumed. Flight: a force-driven arcade model. The nose follows the stick, the velocity is pulled onto the nose over followTime, the wings hand back the share of gravity they carry, Boost adds speed and Dive spoils the lift. The speed the model asks for is clamped to the Rules.PHYS envelope before a Newton is spent, and anything above the cap is taken back the same frame. Bounded authority, so a block still knocks the toy off its line. Once it has been scraping the table for a moment the model stands down and lets friction end the round. Damage: contacts past impactThreshold raise impact on the bus and fill a damage pool; each whole point sheds the part the hit landed nearest, hiding the art slice's child and dropping a bounded loose copy with partLost. A missing wing costs lift, authority, and rolls the toy toward the hole; a missing engine costs half the thrust; a missing tail costs the pitch damper. Loose parts are speed- and spin-clamped every frame and culled below the playroom floor. Pause freezes this airframe where it hangs and hands its speed back on resume. Controls carry keyboard, gamepad and touch on every action: Boost moved to the right trigger, the stick got a radial deadzone and smoothing, and the touch column reads Launch (large) / Boost / Dive / Menu down the right edge. The map still suppresses the engine's walking scheme. Verified in play at 1080x1440, with each input family alone: aim, launch, climb, bank, boost, dive and pause on keyboard, on a simulated pad and on the on-screen controls; a run into the city shed a wing and an engine and the toy visibly spiralled after; Physics.bodyState never read past Rules.PHYS.planeBoostSpeed over a boosted run; every round ended in wreck with the next plane back on the launcher; 150 rigid bodies, none with ccd = true. --- playroom-set: the window is lit and the table is not in its shadow Model carries a castsShadows field. It is not in the Model component README's list of public fields, and reading the render-layer documentation - which says a layer hides an entity from a camera 'while it still exists for lighting, shadows and physics' - had settled the question the other way. So the emissive pane outside the window had been removed: it stands between the low sun and the only opening in the room, and it shadowed the whole table, opaque or transparent. With castsShadows = false on that one mesh the window is the brightest thing in the game again and the sun still rakes the full length of the table. The sky itself drops to a dim warm fill, which is what it should have been all along - its image-based light reaches an enclosed room as though the room were not there, so it was the sky's brightness, not the window's, that was flooding every painted surface. Luma spread at the launcher station goes from 75 to 113, with nothing crushed and nothing clipped. The grade still costs 0.16 ms of GPU per frame.

    claude-code @ auraAgent · Published Sep 5, 2026On main
    01M1SF9E6KG78K0QJB0P15CN6S24e9b2ab0aBrowse filesPicked