Repository navigation
Palinopsia v1.3.1 : paint, hands and steps.
A release for playing with your hands. Marbling floats paint on water, and you play it by
clicking the preview or by pinching in front of the camera. The Body camera now reads
your fingers : ten hand shapes fire rules, and a rule can play almost anything in the
instrument. A new step sequencer brings conditional steps and swing to the modulators.
The points of Lattice, Ash and Particle Drift can turn into ink drops, seeds and torn
paper. Depth AI finally runs, offline, from inside the app, and Body, the Sequencer and
Sonify each open in a window of their own.
New
-
Marbling. A new source : drops of paint floating on water, flat colors with crisp
edges, like marbled paper. Each new drop pushes the paint already there into rings and
lobes, and the fuller the water, the smaller each new drop spreads. Evolve carries it
all on slow currents, with a comb raked across now and then and a swirl drifting over
it, so it moves like a film (at 0 the picture holds still). Drops can land by
themselves, on the beat, or on the sound. Past a points budget the oldest, most
stretched drops dissolve into the water, so it can run all night. Twelve presets, four
new master chains (Marbled paper) and two Generate themes (Marbled Paper, Night Bath).
It holds 60 fps at 1080p and 4K with 500 drops on the water. -
Click the preview to play on it. With Marbling on the picture, a click on the
preview drops paint right where you clicked, holding keeps pouring it, dragging leaves
a trail of drops; switch the click tool to drag a stylus or a comb through the paint,
or to swirl it. It works on the big preview, at any UI zoom, through the keystone and
even on the dome. Each gesture is one undo step and is kept in the session, so the
picture comes back the way you left it. An OSC message can drop paint at a place too. -
Pinch to paint. On the Body page, Pinch = click turns each hand's pinch into a
pointer : pinch to drop paint, hold the pinch to pour, move while pinching to trail or
comb, open your fingers to let go. Both hands at once, mirrored with Mirror, with a ring
on the preview showing where each hand points. -
A step sequencer. A new modulator, steps, in the rhythms family : sixteen bars
you draw with the mouse, played one after the other on the clock (free, or on a BPM
division that keeps to Ableton Link's beat). A click turns a step into a rest.
Right-click a step to choose when it plays : always, by chance (10 to 90 %), on some
passes only (1:2 plays every other time through, 2:4 the second of every four...), only
in a fill or only outside one, only the first time through or every time but the first.
Hold FILL for a fill (Shift-click keeps it on, and a Body rule or a MIDI pad can
switch it). SWG pushes every second step late for a looser groove, GLIDE slides
from one value to the next, LEN sets how many of the sixteen steps play, and a step
that does not play can hold its value or drop to 0. Little marks under the steps show
their conditions. Recall a scene with another pattern and its passes count again from
its next step 1. The dice and the stepped Generate themes use it too. -
Points that are not pills. Lattice, Ash and Particle Drift have a new
irregular control : at 0 the points are the round dots they always were, and as
it rises each point becomes a shape of its own, no two alike : a soft wobble first,
then ink drops, seeds and pollen with rounded lobes, scraps of torn paper with ragged
edges and thin slivers, each turned its own way. evolve lets the shapes morph and
tumble slowly (0 keeps them still). It works on every Lattice form; in Particle Drift
the head takes the shape and its trail thins to a wisp behind it; Ash's flecks stay
soft. Nine new presets show it (Seed
floor, Pollen globe, Spore galaxy, Pollen, Ink in water, Paper scraps, Torn confetti,
Ink drops, Seed fall), and the Orbit and Murmuration themes sometimes use it. -
Every source and effect has at least ten presets. Silhouette gets its first
(cutout, matte, shadow and hole, some leaving echoes), and Shatter, Crawl, Store Zoom,
Cloud Study and 14 older pieces are filled up : Grown, Veins, Slime Mold, Fluid,
Audio, Metamorph, Differential, Aperture, the Finalizer and the five recipe nodes
(Remap, Luma Blur, Gooey, Matte, Lookup). Picking one Slime Mold, Veins or Fluid
preset after another no longer keeps the last one's zoom or ground. -
A body plays the whole instrument. A Body rule can now fire some 250
actions, found in a searchable list : a layer's mute, solo, source, A↔B, blend, freeze
and punch, the triggers of the effects you loaded (a Field Store's grab), the chains,
scenes, Worlds and Generate themes, the Meta knobs, the modulators, the Feel, the tempo
and the key, the Audio Layer and the output. A MIDI pad can learn any of them too (the
MIDI section's learn list). -
Hand shapes. The Body camera now reads each hand's fingers : a curl per finger,
the thumb's pinch to each fingertip, the hand's roll as you see it, which way the
palm faces and how big the hand looks (how near the camera it is), 24 new features
in the monitor's HAND SHAPE group, for modulators and over OSC. And ten shapes to
fire rules, each hand on its own : fist, open, point, peace, thumb up, thumb down,
ok, horns, call and gun. A shape fires once when you make it and hold it a moment,
and again only after you let it go. The camera preview names the shape each hand
holds. -
Body, the Sequencer and Sonify can each open in a window of their own, like the
Output page : right-click their button, Body in a window, Sequencer in a
window or Sonify in a window. Keep the camera and its rules, the auto-pilot, or
the sound on another screen while you play. Closing the window closes the page, ⇲
puts it back in the app,B,QandSbring the window forward, and the next time
the page opens in the app as usual. -
Your own master chains. Right-click the Master FX strip and choose Save chain as
preset… : give it a name, and the chain as it plays now is kept, every effect with
its settings, plus the Vibe and Context. Your chains come first in the chain presets
menu (my chains), in Ctrl+K and in the next / previous chain actions, and the menu
shows the name while one plays. The same right-click renames or deletes them. -
Add a session as scenes. Open ▾ → Add a session as scenes…, or right-click
Load for the session picked in the list, brings another session into the one you
are playing, as scenes : what it opens on becomes a scene named after it, and when it
has scenes of its own, a question asks whether to add them too, as Name_Scene1,
Name_Scene2 and so on. The session you are in stays as it is (its sound, its pins, its
dome, its settings), one undo takes it all back, and Save keeps it. A set built from
the pieces you already have.
Changed
-
Marbling's comb and swirl use far less of the computer. At 1080p the water now
carries about half the points for the same picture (a 4K picture is unchanged), slivers
combed thinner than half a pixel dissolve into the water, and the points budget really
holds : at evolve 1 with comb and swirl the water used to run away (up to three times
the budget) and move only a few times a second; now it stays near the budget and moves
smoothly at 60 fps. With comb and swirl at full the work per frame is halved at 1080p. -
A lone hand is on its own side. With one hand in view, a right hand is now R
(it used to always be L), and it keeps its side while it stays in view. With two
hands, nothing changes.
Fixed
-
The euclid card no longer shows a scrollbar when its clock is on a BPM division.
-
Depth AI works, and works offline. The header's depth: AI now runs a depth
model that ships inside the app (the download grows by about 66 MB) : no internet
needed, nothing downloaded, ever. It never started before (the app refused to fetch it
from the internet). It reads the picture on the graphics card, on a thread of its own,
so the picture keeps its 60 fps (measured with it on, on the RTX 4070 laptop). A new
AI detail in the same menu sets how finely it reads the picture (252, 392 or 518
px), and the depth map holds steady instead of brightening and darkening each time
something enters the frame. Building from source : runnpm run fetch:depthonce. -
Right-click menus open right against their button. The Output button's menu
opened well above the button; it now opens just over it, lined up with it, and every
right-click menu fits its window from its real size, at any UI zoom. -
The A and B letters of a layer are centered in their buttons (and the
background's BG, and the Audio Layer's A and B). -
Small dropdowns in the Inspector show their whole choice. Luma Blur's Quality
("smooth"), Gooey's Key ("brightest channel"), Matte's, Corrode's, Toile's,
Faultline's and Decimate's were cut; they are now as wide as their longest choice. -
The Sequencer's resize edges follow the pointer at any UI zoom (the inspector
column and the live monitor ran ahead of the hand at 125 %). -
The Assemblage source's Inspector has proper margins. Its rows no longer touch
the panel's edges. -
The chain menu names the chain that plays. After a Body rule, a MIDI pad, a scene,
a Generate or the dice changes the master chain, the Master FX menu shows that chain
(or nothing, when the effects match no chain) instead of the last one picked by hand.
Opening an older session
Everything opens as before : irregular is 0, so Lattice, Ash and Particle Drift look
exactly as they did, and every modulator card stays what it was. Two things differ on
purpose :
- A rule on a left-hand gesture (pinch L and the others) used to fire for any lone
hand. Now a lone right hand fires the R gesture : add the R version to the rule if you
want either hand. - If depth is set to AI, the depth effects (Parallax, Context's depth, the
depth-aware effects) now get a real depth map, where before they got none.
Install
| Platform | File |
|---|---|
| Windows | Palinopsia-1.3.1-win-x64.exe (installer) or Palinopsia-1.3.1-portable.exe |
| macOS (Apple Silicon) | Palinopsia-1.3.1-mac-arm64.dmg |
| Linux | Palinopsia-1.3.1-linux-x86_64.AppImage or Palinopsia-1.3.1-linux-amd64.deb |
The downloads are about 66 MB larger than 1.3.0 : the depth model now ships inside.
Builds are unsigned :
- Windows : SmartScreen may warn, click More info → Run anyway.
- macOS (Apple Silicon) : not notarized. Drag Palinopsia into Applications first,
then runxattr -cr /Applications/Palinopsia.apponce in Terminal, or open it and click
Open Anyway in System Settings → Privacy & Security. The first launch asks for the
local network, and for the camera and the microphone when you use them : accept, or
OSC, NDI, Ableton Link and light output stay silent. Screen capture is the one
permission macOS never prompts for : switch Palinopsia on under Privacy & Security →
Screen & System Audio Recording, then start it again. - Linux :
chmod +xthe AppImage, then run it.
Intel Macs (x64) : this release ships Apple Silicon only. On an Intel Mac, build from
source : npm install, npm run fetch:depth, then npm run build:mac.
For developers
- The depth engine :
npm run fetch:depth(scripts/fetch-depth.mjs) fetches the
pinned Transformers.js, its onnxruntime-web build and Depth Anything V2 Small into
resources/depth(never in git), checking each file's SHA-256; CI runs it, cached,
before building. The model runs inworkers/depthWorker.tsoveropsia-asset://depth/
with remote models off. - Clicking the preview : a native generator that implements
pointer?(ev)receives
the preview's pointer events (down / move / up in composition uv, a pointer id per mouse
or hand). Routing : the selected slot if it takes the pointer, else the topmost visible
layer that does, the Background last. Marbling (engine/MarbleSource.ts, the model in
engine/marbleModel.ts, stepped inworkers/marbleWorker.ts) is the first. - The steps modulator : the model and its sanitizer in
engine/stepSeq.ts, the tick
and the pass counters inengine/modulation.ts(restartRuns,restartRunsAt(beat)). - Hand shapes :
engine/handShape.ts, pure and testable without a camera; its
thresholds sit at its top. - Actions :
actions.ts(act:*ids) andtriggerCatalog.tshold the vocabulary
Body rules and MIDI learn share. - Page windows :
PageWindow.tsxserves the Output, Body, Sequencer and Sonify
windows;ContextMenu.tsx'splaceMenumeasures a menu before placing it. - Shared outlines :
shaders/isf/lib/blob.glsl(the// @blobinclude) draws the
organic point shapes in the ISF shaders and the native Lattice.