PER SONUM
The Manual — how to do everything in the instrument
A fractal is drawn sixty times a second, and the sound decides how it folds, turns, pulses and colours. Nothing is pre-rendered and nothing is on a timeline: the picture is the sound, arriving as it arrives.
It is an instrument rather than a filter. The controls are there to be played — by hand, by preset, by MIDI, or by the track itself.
Recordings come out as MP4 with the audio already in them, at up to 2560 × 1440.
Everything is inside the one HTML file: the code, the shaders, the artwork and the demo song. It runs offline, from a local disk, with no server. Nothing is uploaded anywhere, because there is nowhere for it to go.
It needs WebGL2 — current Chrome or Edge on a machine from the last several years. A message says so plainly if the browser cannot run it.
The first thing shown is the Terms of Use, with I AGREE & CONTINUE at the foot. The short version: what is made with the software belongs to whoever made it, the supplied song may be used commercially with a credit, and anything brought into the app is the responsibility of whoever brought it.
TERMS.txt beside the app is the same text, for keeping.
Three sources, chosen at the top of the panel:
| FILE · RENDER | Play a track from disk. The whole song is analysed before it starts, so levels are measured against the song's own loud passages and the first beat is found rather than spent warming up. This is the mode that records cleanly. |
| THIS COMPUTER | Listen to whatever the computer is playing — a streaming service, a browser tab, a DAW. Choose a screen in the share dialog and tick Also share system audio. Chrome or Edge on a computer only. |
| LIVE · MIC | Open the microphone to the room. Follows a whole set regardless of whose music is playing. |
The whole window is a drop zone. Drop an audio file anywhere and it loads as the track; drop an image anywhere and it becomes the picture. The app sorts by file type. CHOOSE FILE and CHOOSE IMAGE do the same thing by dialog, for phones and for anyone who would rather click.
The plaque reading THE SOUND UNBOUND is a button. Pressing it plays the song that ships inside the file — The Sound Unbound by Per Sonum — so there is something to react to before any track is loaded.
It is included to be used, not only demonstrated. See Terms and credits.
The same app, packaged three ways. They behave identically; the difference is what travels with them.
| THE FULL VERSION | ~2.8 MB — the whole thing, with the song inside it. Press the plaque and it plays. |
| THE COMPACT VERSION | ~0.4 MB — the same app without the song. No demo plaque; bring your own track. It opens on the eye rather than the plaque, which also means Paint the picture works out of the box. |
| THE POLYGLOT | ~7.8 MB — one file that is both the record and
the app: a playable .mp3 that becomes the complete
application when its extension is changed to .html. Nothing
is extracted or installed; the same file simply answers to both
names. |
EASY MODE carries everything needed to get a good picture and record it.
ADVANCED carries the rest: the motion sliders, the six-part analysis, the listening controls, quality, camera, timing, MIDI.
On a wide window ADVANCED spreads into a second rail beside the first. On a narrow one it stacks. Knobs and sliders are the same controls in both places.
The source buttons, CHOOSE FILE and CHOOSE IMAGE, the demo plaque, and — once a track is playing — its name and progress.
| Shape | the geometry being folded — see The shapes. |
| 3D | draw the shape solid, with depth. Unticked it folds flat. Custom Image is always flat. |
| SET CENTRE | then click the point of the picture to sit at the centre. |
| RECENTRE | put it back. |
| STILL / DRIFT | the camera parked, or slowly moving. C swaps them. |
| Mirrors | how many times the fold repeats around. Low is open and architectural; high is a kaleidoscope. |
| Rotate | turn the supplied picture in 90° steps. |
| Anchor size | how large the picture sits within the fold. Larger also means sharper, because the picture is sampled closer to its own resolution. |
| Anchor image | hold the picture as a fixed shape at the centre while the fractal moves around it. |
| Colours | two to six colours, picked by hand. |
| SHARP / SMOOTH | hard edges between the colours, or blends. |
| Rainbow | ignore the chosen colours and cycle hue instead. |
| Paint the picture | apply the chosen colours to a two-tone picture. This engages only when the picture really is close to two colours; a photograph or a marbled image is left in its own colours. |
| Picture on 3D | weave the picture through solid shapes as well as flat ones. |
| Image | how much of the picture shows through. |
| Glow · Contrast | the light and the curve. |
Ten slots. Clicking an empty slot saves the current look into it straight away; clicking a filled one loads it. SAVE writes to the highlighted slot, CLEAR empties it, and the number keys 1–9, 0 load them.
RECONNECT DEFAULTS puts every look and motion setting back to the way the app opens, and lets the settings that follow the music do so again. Several controls follow the world until they are moved by hand, and then stop; this is the way back. The track, the picture and the saved presets are kept — it is the look and motion that returns, not the session. It is itself undoable.
| MUTATE | a small nudge to fold, mirrors, spin, wash, rings, glow, the colours and the parts' amounts. |
| RANDOMISE | fresh values for the same set. |
| CATCH ON / OFF | hold every control that changes the look, so nothing is altered by accident. L. |
| UNDO | the last change to the look. Ctrl+Z. Ten steps. |
Resolution, quality and the record button. See Recording, in detail.
Flight, Fold, React, Pulse, Spin — the five that decide how the world moves and how hard the music moves it. Fold is the one that changes the geometry most; React is the overall coupling between sound and picture.
WHOLE MIX treats the track as one signal. ZONES splits it: each of six parts is assigned to a region of the picture, with its own effect and amount.
Also Wash and Rings — two overlay motions that read the mix.
Six parts, by register and by kind:
| Kick | low percussive — the kick drum |
| Snare | mid percussive — snares, claps, toms |
| Hats | high percussive — hats, cymbals, shakers |
| Bass | low harmonic — the bassline |
| Voice | mid harmonic — vocals, and lead lines sharing the range |
| Air | high harmonic — pads, strings, breath |
The split works by finding what is brief and broad (a hit) against what is held (a tone), in the spectrum over time.
| Sensitivity | how much a moment must stand out from the sound around it to count as a beat. Down if beats are heard everywhere; up if a quiet groove is being missed. |
| Gain | how loud the music arrives before any of it reaches the picture. A loaded file is levelled already; this is for a quiet room, or for making the whole picture react harder. |
| Smoothing · Response | the fall and the rise of every envelope. |
Detail, Steps, Scale. Detail and Steps set how much of the fractal is resolved; Scale sets the ceiling for the automatic resolution governor.
Zoom, and Endless — keep falling inward without arriving.
| MANUAL FLIGHT | fly by hand. Arrows move, PageUp/PageDown climb and dive, Shift is fast, dragging the picture aims it, the wheel zooms. |
| DIVE | the camera parks and the fractal pours into it, endlessly. Flat shapes only. |
| Fly speed | the pace for both. |
| Offset | positive puts the picture later, to match late headphones or a slow screen. Negative, for files only, puts it earlier. |
| Tap tempo | TAP four times on the beat (or press T) and the picture follows those taps instead of its own detection. CLEAR returns it. |
| Outline | how much of the picture counts as its shape when the outline is read. |
| TRIM MARGINS | crop the picture to its own outline. |
| Remember my picture | keep it for next time. |
Frame rate — 60 fps, or 30 for smaller files. Render — record at full size, or at 75% / 50% and scale up, which holds the frame rate on slower machines.
CONNECT, then LEARN and move a control and then a knob to bind them. CLEAR ALL forgets the lot. Bindings persist.
The app's name and version, and the buttons for the full ABOUT text and the TERMS OF USE.
Twenty-one, in the order they appear:
TUNNELS · CHAMBERS · ORBS · LATTICE · SHELLS · STRATA · EYE · LEAF · CYLINDER · CONE · TORUS · CAPSULE · PYRAMID · OCTAHEDRON · ICOSAHEDRON · PRISM · STAR · CROSS · FRAME · LINK
and CUSTOM IMAGE, which folds the supplied picture itself and sits last in the menu because it behaves differently from the rest: it is always flat — the 3D box is disabled while it is chosen — and its shape is whatever the picture's outline turns out to be.
It is also the shape the app opens on, which is why the 3D box seems to do nothing at first: choose any other shape and it wakes.
S steps through them.
The picture is used twice over, and it is worth knowing the difference.
As material. It is sampled for colour and texture wherever the fold shows it.
As a shape. Its outline is read into a distance field, and the fractal folds around that. The outline is found in one of three ways, whichever fits:
A bold shape on a flat background reads best. A busy photograph will read as a rectangle, which is a perfectly good anchor but a dull one. PNG, JPEG, WebP, GIF, BMP and AVIF are read; SVG is not — export it as a PNG first.
The app opens with its own plaque as the picture — a transparent WebP, so the outline comes from its alpha.
With a loaded track, Directed by the track listens beyond the immediate beat. It looks for rhythm, energy, sections, builds and drops, and uses that musical shape to steer the visual performance — while leaving the underlying look as set.
It does not overrule chosen colours or shapes. Presets are recalled, never imposed.
The note beneath it reports what the app has made of the track and what it is doing about it right now. If the tempo reads wrong, tapping the beat overrides all of it.
For the curious. The sound is analysed about sixty times a second into:
In FILE mode all of this is done once, in advance, for the whole track. In LIVE and THIS COMPUTER modes it is done as the sound arrives, a few frames behind.
Filenames carry the track, the tool, the frame size and the moment:
The Sound Unbound - Per Sonum 1920x1080 26Aug2026 0144.mp4
Live Session - Per Sonum 1920x1080 26Aug2026 0144.mp4
The date is written out because 08/09 is two different days depending
where you live, and the time is 24-hour with no separator because a colon is
illegal in a filename and a dot reads as the extension. There is exactly one
dot in the name. Tags do not stack when a recording is re-recorded, names cap
at 120 characters, and they sort in the order they were made. Stills follow
the same pattern with .png.
Along the bottom: play / pause, restart the track, record, and save a still.
| H | hide / show the panel |
| F | fullscreen on / off |
| R | record / stop |
| C | switch camera — still / drift |
| S | next shape |
| L | lock / unlock the controls |
| T | tap the tempo |
| 1–9, 0 | load preset slots 1 – 10 |
| ←→PgUpShift | fly, in MANUAL FLIGHT |
| Ctrl+Z | undo the last change to the look |
| Space | play / pause in FILE · start / stop listening in the other two |
| Esc | bring the panel back |
The panel also hides itself after four seconds of stillness — though never while recording — and comes back on any movement of the mouse. On a touch screen, a tap on the picture toggles it.
It runs. The panel takes the screen, and the file and picture choosers open the phone's own pickers — drag-and-drop is not available on a phone, so the buttons are the route in.
Recording saves through the phone's Downloads folder.
Drawing a fractal is heavy work for the graphics card, and the cost depends on resolution, Detail, Steps and the shape. Rather than stutter, the app lowers its drawing resolution on its own when a scene is too heavy, and raises it back slowly when there is room. The current figure shows in the stats line as a percentage next to the frame rate. Scale sets the ceiling it works under.
Roughly, lightest to heaviest: any 2D fold (Custom Image, or a shape with 3D unticked), then the solid shapes. Detail and Steps at maximum roughly double the cost of the 3D shapes against the middle of their ranges.
http://localhost fixes it.Every MP4 and PNG is yours — no watermark, no title card, nothing in the frames. The MP4 carries ordinary "made with" metadata naming the tool, and the link once, in the comment field that editors actually show. There are no artist, album or copyright fields: the video is its maker's work.
The full Terms of Use are shown when the app opens, and repeated in TERMS.txt.
What matters most: