SOURCE / PINNED RELEASE
Made of little things.
Powder Tool
- Release
- 242076e6da24…
- Author-recorded commit
- c4489f440f27…
- License
- LICENSE
- Author’s source reference
- nostr://npub182jczunncwe0jn6frpqwq3e0qjws7yqqnc3auccqv9nte2dnd63scjm4rf/wss%3A%2F%2Fgit.napplet.soy%2F/n-48e516e34e5
Archive hash verified: f2fd072590aac7a5…. The source-to-build association is the author’s claim; it has not been independently rebuilt.
# Powder Tool
A compact napplet for painting substances and playing with rigid-body physics.
- **Sand** falls and piles up; **water** flows; **oil** floats and burns.
- **Fire** consumes wood and oil; **lava** cools into wall when it meets water.
- Five gases behave differently: **steam** rises and can condense, **smoke** rises slowly and fades, **hydrogen** rises and burns, **helium** rises without burning, and **CO₂** sinks and smothers fire.
- **Emitters** continuously add a chosen material. Configure particles per second, outlet width and direction, and enabled state. Use the Emitter tool to place/edit a source, Grab to move it, and Remove or Erase to delete it.
- **Wood** and **wall** create fixed structures. **Crates** and **stones** are movable bodies with rotation, collisions, and fluid interaction.
- Select **Grab** to drag and throw bodies. Grab a corner to spin one. Use **Erase** or right-drag to remove material.
- The stage defaults to **600 cells wide**, four times the original cell count at the same aspect ratio. Stage detail offers 300/450/600 widths and resamples the current scene; undo restores the previous grid.
- Adjust brush size and gravity. Pause, advance one frame, switch example scenes, clear, or undo an edit.
- **Save** and **Load** keep one scene in the host's scoped storage. Emitters and their configuration are saved too. Older version-1 scenes remain readable. Eight recent edits can be undone in memory. Clear and scene changes are also undoable.
Open the Materials button on small screens to choose materials and access scene actions. Drawing uses mouse, pen, or touch. Crates and stones are placed once per tap; other materials pour while held. A larger brush also creates larger rigid bodies. There is a limit of 48 bodies and 24 emitters. Select **Gas lab** to explore four running gas sources.
Higher detail takes more processing time; choose Standard on a slower device. Reducing detail merges small features. The simulation is a playful approximation. Liquids and gases use a cellular grid; rigid bodies use convex collision detection, impulses, buoyancy, and drag. It does not model real thermodynamics or continuous fluid pressure. Resize keeps the scene intact and fits it to the frame; choosing a new example uses the current frame's aspect ratio.
## Develop and verify
The workspace and skills are installed. Do not re-scaffold it. See [soyLI integration](docs/napplet-space.md).
```sh
soyli dev --port 0 --no-open
pnpm verify
pnpm test:conformance
soyli check
```
Use the hosted URL printed by `soyli dev`, then stop the owned session with Ctrl+C. The raw Vite server does not provide a shell. `pnpm verify` includes guidance, physics regression tests, TypeScript, and the single-file build. `dist/index.html` is the playable artifact.
Optional SDK domains: `theme` supplies host colors, `config` supplies interface preferences, and `storage` saves scenes. The simulation needs no hard capability, identity, network, or relay access. No relay escape hatches are used. Failed optional storage calls leave the current scene usable and show an error.
See [build spec](docs/powder-design.md) and [verification and capture notes](docs/powder-verification.md). Publishing is a separate explicit action.
For other environments, upstream agent skills can be installed with `npx skills add napplet/napplet`. This project's installed skills and pinned boilerplate should be preserved.
