Skip to content

Palinopsia v1.2.0 : the dome and the grain

Choose a tag to compare

@github-actions github-actions released this 08 Oct 22:28
· 278 commits to master since this release

Palinopsia v1.2.0 : the dome and the grain.

Palinopsia goes under the dome and out to the rest of the video world : a real fulldome output
(210°, up to 4K), NDI and Syphon built in, and real-time DXV3 recording at dome size. Down at
the grain, surfaces grow, crack and rust (Grown, Colony, Ground, Scan), film gets damaged the
way real film does, and CRT / VHS faults look like the real thing. The camera learns how a body
moves and can cut it out of the room, Generate builds scenes that move, and a video plays at
any speed from 1/64× to 64×. A Collage of films becomes something you play live, and hear :
its pieces grow and shrink under a modulator, its films take effects while the cut shapes stay
crisp, and Sonify sings it through a tuned Ring bank, while a new key sequencer composes
the key of the whole sound over time. An installation now looks after itself for days :
it starts with the computer, heals a crashed picture, sound card or camera, and keeps its
projector. And every source, effect, node and finishing stage went through a deep audit :
what was broken is fixed, and what gave the instrument its character is kept, as the
default look, with the clean version as an option.

Highlights

  • Fulldome output. A square domemaster (front at the bottom), 2K or 4K, aperture
    180 to 230°, feeding everything : preview, projector, NDI, Spout, Syphon, recording and
    stills. Fit a flat picture as full dome, panorama or screen, and check it in a 3D
    dome simulator, from the seat or from outside.
  • NDI in and out, built in. Any NDI source on the network (a camera, a phone, OBS,
    another Palinopsia) plays in a layer like a webcam : NDI Input… in the source menu.
    Always the newest frame, so it never drifts behind (a 1080p source arrives in ~45 ms).
    And Palinopsia is its own NDI source : 4096×4096 at 30 fps, even with the
    window minimized. No NDI on the computer? One click installs NDI's official runtime.
  • Syphon on macOS, the twin of Spout.
  • DXV3 recording in real time : the GPU compresses each frame and the file is written as
    it goes, so the 4096² dome master records at full size, with nothing to convert after,
    with the Sonify sound when it plays.
  • Living surfaces. Four new Organic generators : Grown (a texture that grows itself
    and heals when you damage it), Colony (lichen, mold, burning paper, rust), Ground
    (drying mud, migrating sand ripples, strata, wood, bark) and Scan (30 real
    photographed materials). The rest of the Organic family is now lit as a relief.
  • Film damage, rebuilt from real film : dust, fibers, scratches and a hair in the gate,
    per film gauge, plus a dirt burst you can fire on a beat.
  • The camera reads movement : a motion field (which way things move, whether they
    spread out or close in, turn, move as one), six movement qualities of a body (energy,
    expansion, fluidity, suddenness, directness, symmetry, plus impulse and freeze gestures),
    and a Silhouette source that cuts the body out of the room, no green screen.
  • Generate builds scenes that move, using the whole instrument, with three new
    families (Dome, Film Wall, Node Workshop) and 25 new master chains.
  • Video, any speed, and a real transport : 1/64× to 64× on ordinary footage, stop, scrub
    the timeline, and step through the other clips in the folder.
  • A folder of sessions links into the Session dropdown in one right-click.
  • An OSC monitor : the OSC section now reads in two halves, what comes in and what goes
    out, each with its own traffic light, and monitor shows every message both ways, live.
  • Installations look after themselves : start with the computer, reload a crashed,
    hung or frozen picture, reopen a closed output, follow the projector, reconnect the
    camera and the sound card, play the session's sound, never wait on a dialog, and keep a
    log. A Mac runs one as well as a PC.
  • A key sequencer composes the root and scale of the whole Sonify instrument over
    time : a list of keys, a walk on the circle of fifths, a pick by shared notes, a pivot
    to another mode, or a key read off the picture, on beats and bars, with a glide that
    slides every voice to the new key.
  • The camera no longer slows the picture : hand, pose and face tracking run on their
    own thread (about 0.1 ms of the picture's time a frame instead of 3 to 5).
  • Hear the Collage. Sonify's new Collage voice plays the wall's films all at once,
    each piece placed in the stereo field by where it sits and rung at a note of your key, and a
    new deal crossfades instead of cutting. A Ring bank inspired by the S-4 then rings the
    whole voice through 48 resonant bands tuned to your scale : decay, cutoff, slope, tone,
    tilt, travelling waves and random noise (free or locked to the tempo), detune, and
    five filter voicings. The Chord voice gets the same waves.
  • Collage, played live. Modulate cuts and the wall grows and shrinks a piece at a time
    instead of reshuffling; FX before shapes runs the source's effects on the films while
    the seams, contours and torn paper stay crisp; torn paper tears like a real torn-magazine
    collage (in the Autocutter too); and the wall is lighter on the machine.
  • Effects travel between racks : copy or drag an effect between the layers and the
    Master FX (right-click → Copy to…, or drag its chip; Ctrl copies).
  • Everything morphs : scenes, Randomize, sessions, New and Generate move into the next
    composition over the Morph time, live and layer by layer, with no flick.
  • Context's light moves : draw a path on the light pad and play it.
  • Resolume OSC mapper (key K) : open a Resolume composition and wire Palinopsia's
    signals to its layers, clips and effects in a matrix.
  • A dataflou node : Palinopsia joins the dataflou mesh, shows every node and connection
    on it, and wires its senses and controls to the other instruments, both ways.
  • The big audit : all 23 generators, the native sources, 52 effects, the finishing
    chain and all 25 native nodes. Knobs never jump the picture anymore, long shows stay
    alive, and transparency, 4K and the dome are handled everywhere.

Your sessions are safe

  • A session file only changes when you save it. Loading another session, Open,
    New, Generate and quitting used to save the session you were leaving into its file
    without asking; after a crash restore it could even land in ANOTHER session's file
    that shared its name. Now they ask Save changes? (Save · Don't save · Cancel),
    and only when something changed. Don't save keeps a recovery copy.
  • Every overwrite keeps the previous version : right-click Load → Earlier
    versions
    brings one back. The crash autosave keeps the last hour, and Restore
    reconnects to the session's file.

Opening an older session : what may look different

Most sessions open exactly as before. These changes are deliberate, and each one either
fixes something that did not work or can be set back :

  • Finalizer "A" is now "opacity", a real fade to black. It used to do nothing, so a
    session saved with it below 1 now looks darker : set it back to 1.
  • Context's material relief finally shows. Picking a material (bricks, bark, paper…)
    now relieves the picture with that material; before, it read a random image instead.
    The same bug made Vibe and Context skip frames, even with no material : that is gone.
  • Light Trails and Wide Time fade all the way to black instead of leaving a permanent
    fog. Wide Time's blown-out look is kept as its new burn mode.
  • Wavefold and Colorizer no longer turn dark grounds white by default; the old
    negative look is the new invert switch.
  • Melt creeps visibly now, and Corrode eats the frame over minutes (one minute to an
    hour) instead of seconds.
  • Pixel Sort's length works past 96 pixels.
  • The heart shape (Transform and the output shape) stands upright with a clean edge. It
    used to be upside down : rotate by 180° for the old one.
  • Weave, lumakey and consume now do something as layer blend modes (they acted as
    normal before).
  • Flash safety is on (mild, 0.35) unless you set it yourself : a bug left it off on
    installs that had never touched it. It now really catches strobes, and on a very bright
    scene it can soften film flutter too.
  • Randomize leaves deliberate settings alone : anaglyph 3D, film hold, the output shape,
    Vibe's chord mode and all the film damage are never rolled.
  • Sessions saved before the film-damage rebuild with Film Hold off open with dust and
    scratch at zero, once (they were invisible before, so nothing you saw changes).
  • A dome master saved at 8K opens at 4K : the live dome now stops at 4K (see Fixed).
  • Seven surface materials keep their real proportions : bricks, concrete, corrugated
    steel, painted plaster, rock face, wood grain and paper crumpled used to be stretched to
    about twice their height, in Context's surface material and in the Scan source. They now
    look like the real thing, so their features are wider and flatter than before.
    Rock rough is renamed stacked stone (what it is); sessions keep it.
  • Video grain plays the right way up : grain voices were upside down.
  • The Finalizer's output shape comes last : film dust and scratches now stay inside the
    shape, and the fill around it stays clean.
  • The output shape's edge is crisp : it used to be slightly soft, more so at 4K and on
    the dome. Its new feather brings softness back on purpose (0.05 is the old edge).
  • A Collage deals differently : the same deal now draws another cut and another order of
    films (the price of a wall you can modulate piece by piece), and the mosaic's shards are
    spread more organically, without rows.

And in Sonify :

  • The reverb mix works. It used to be ignored (the reverb always at one level); 0.6, the
    default, is exactly that level, so only a patch saved with another value sounds different.
  • The Filter voice's noise no longer loops every 218 ms (a faint 4.6 Hz flutter in its
    wind). Its new loop knob brings it back : about 0.14 is the old flutter.
  • The stereo field is equal-power : Chord, Flow and Events notes keep their loudness
    wherever they sit, and Chord's lowest note sits in the middle (it was hard left).
  • Voices fade in and out over 5 ms when they switch, so the sequencer's steps no longer
    click.

New

Fulldome (Output page)

  • A domemaster at 2K or 4K, equidistant fisheye, front at the bottom, aperture 180
    to 230° (210° by default, as in the SAT Satosphère). It replaces the frame everywhere :
    preview, projector window, NDI, Spout, Syphon, recording and stills.
  • Three ways to fit a flat picture :
    • full dome : the whole frame over the whole dome, nothing cropped, no black (or
      cover / contain);
    • panorama : wrapped around the room, up to the zenith;
    • screen : a flat virtual screen, re-projected so it reads undistorted from the
      center.
  • Rotate, spin, rim feather, flip, and an alignment grid burned into the output.
  • A 3D dome simulator shows the live master on a dome : from the seat or as an outside
    cutaway, with tilt, a template and the sweet spot, and a "whole dome" view.
  • The dome is off by default, and the section has a reset-to-defaults button.

Output and recording

  • The Output button lights while the external output is on.
  • A Mac runs an installation as well as a PC : the picture keeps full speed while the
    fullscreen output covers the control window, and macOS no longer naps the app.
  • Installation mode looks after itself : it starts with the computer (and again after
    a crash), keeps the screen awake, reloads a crashed, hung or frozen picture, reopens a
    closed output, follows its projector when displays change, reconnects a camera that
    drops out, plays its sound if Sonify was on in the session, never waits on a dialog,
    and logs everything to a file. Exit by holding Esc or O on the output for 1.5 s.
  • Every take starts at once, even after a long pause : the sound card is kept awake
    (silent) instead of falling asleep between takes, and Sonify sounds as soon as you
    switch it on.
  • The first take of a session starts at once : the video encoder warms up quietly
    after launch, so a short first MP4 or ProRes take no longer comes out empty.
  • Recordings carry the Sonify sound whenever it plays, DXV3 included, even when you
    switch Sonify on during the take; a take without Sonify has no sound track.
  • NDI output, built in, replacing the old optional stub. Sends the clean picture or the
    domemaster, 4096×4096 at 30 fps (measured into a receiver, with a GPU-heavy scene and the
    window minimized). Name, frame rate (25 to 60, 29.97 and 59.94 exact), size cap, UYVY or
    RGB. For venue networks : Discovery Server, network card, extra IPs and groups, applied
    live. Receiver status, sent rate and an ON AIR / PREVIEW tally.
  • One-click NDI runtime install on a computer without NDI (Windows and macOS) :
    downloaded from NDI over HTTPS, its signature checked, NDI's own installer opened, and
    the source goes live by itself when the install finishes.
  • Syphon output (macOS) : a Syphon server named Palinopsia, for any Syphon app on the
    same Mac.
  • DXV3 recording in real time. The graphics card compresses each frame and a few
    workers write the file as it goes : no conversion afterwards and no encoder size limit,
    so the 4096² dome master records at full size (larger masters are scaled to 4096).
    Constant 30 or 60 fps, the clean picture. Validated with FFmpeg's DXV decoder, in the
    same file layout as Resolume's own clips.
  • Record location : Output → Record → location… picks where takes, screenshots and
    Assemble exports go. It is checked, remembered, and if the folder can't be reached (an
    unplugged drive) the take falls back to Recorded/ with a warning instead of being lost.
  • Recording formats know their limits. The hardware video encoder stops at 3840×2160,
    so above that (the 4K dome) the other formats are grayed out and the take records DXV3.
    The MIDI record toggle now uses the chosen format too. "Fast · no re-encode" is now
    labeled for what it is : MKV, H.264 as captured.

Organic : surfaces that live

  • Grown : a texture that grows itself. A tiny neural cellular automaton, trained on a
    real photographed surface (lava, mossy rock, bark), grows it cell by cell from nothing
    and keeps it alive. DAMAGE cuts a hole that heals within a second, REGROW starts
    over. Six presets.
  • Colony : living matter spreading across a surface, in four kinds : lichen on granite,
    mold on agar, burning paper, rust on steel (or verdigris on copper). Fronts grow
    roughly, slow on poor ground and stop short of each other; each colony ages (lichen
    cracks, mold rings, char turns to ash, rust pits and flakes). Regrow on a button or a
    cycle. Ten presets.
  • Ground : the surfaces under the living things. Mud drying and cracking, sand ripples
    migrating with the wind, rock strata, wood end grain and bark, each with an alternate
    palette. Ten presets.
  • Scan : 30 real photographed material scans laid across the frame without visible
    repeats, relit by the Organic light. Colony's transparent ground grows lichen or rust
    over it. Ten presets.
  • Veins : a leaf blade growing and calling its veins (open or looped), or roots
    reaching down through the soil, by the model botanists use to reproduce real leaves.
  • Mycelium grows for real : hyphal tips that branch, fuse and eat the ground (it was
    noise contours). Same controls, so sessions keep theirs.
  • Slime Mould : a slime mould growing its transport network from hundreds of
    thousands of agents : veins that thicken, prune, reroute and forage.
  • Fluid : a real fluid solved live : ink blooming in water, smoke rising into eddies,
    fire glowing by its temperature with soot above it. Seven presets.
  • Reaction, rebuilt at full precision : the same pattern at any resolution and frame
    rate, rate up to 3, scale reshapes it live instead of restarting, and regrow ▸.
  • The Organic family, made physical : an Organic section in the source picker; relief
    lighting
    on Reaction, Erosion, Membrane, Mycelium and Dye Field (relief and light angle, 0 for the old flat print); Swell rebuilt from real deep-water wave physics;
    water caustics focused by real waves; fire that stretches as it rises, flickers
    with a real rhythm and is colored by temperature.

Film and analog finishing

  • Film dust and scratch, rebuilt from how real film gets damaged. Dust changes every
    film frame (24 fps, 18 on Super 8), mostly tiny specks and the odd big clump or fiber,
    dark on the print or white from the negative. Scratches run along the strip for a
    fraction of a second to a minute, wander, break up and fade; mostly dark, some white or
    green-yellow. It now works with Film Hold off, and costs under half a millisecond at
    4096².
  • New film controls : gate hair (a hair caught in the projector gate), film gauge
    (35 mm, 16 mm, Super 8), dirt on (print, mixed, negative), dirt burst ▸ (a dirty
    stretch of film, fire it on a beat or an onset, even with dust at 0) and film grab ▸
    (re-draw or re-freeze the hand-made film on a trigger).
  • CRT / VHS parasites, rebuilt in real scanlines. VHS : wobbling line edges, a frayed
    head-switch tear, white dropouts with a recovery tail, and a tracking band of torn,
    snowy lines when pushed. CRT : a rolling hum bar, a faint RF weave and impulse specks.

Body and vision (Body page)

  • The camera's BODY pip sits in the lower right of the full-page views (Sonify,
    Output, World, Sequence, Resolume); on the main view the lit Body button says it.
  • Motion field (Motion toggle) : the camera's optical flow read as nine features :
    how much moves, which way, whether it spreads out or closes in (someone approaching,
    arms opening), whether it turns, whether it moves as one or every which way,
    where, and how much of the frame. Gestures : swipe left / right / up / down, approach,
    withdraw, turn, and stillness. It follows anything that moves, a crowd or a curtain
    as well as a body. The picture itself gets the same reading on the vision bus.
  • Movement qualities (with Pose on) : how the body moves, not only where. Energy,
    expansion, fluidity, suddenness, directness and symmetry, measured
    against the body's own size so near and far read alike, with two gestures : impulse
    (a burst out of calm) and freeze (a quick stop held still). The camera's own jitter
    is learned and taken off, so a still body reads still on any camera.
  • Silhouette source (with the live inputs in the source picker) : cutout (the
    camera where you are, nothing elsewhere), matte (white on black, to key or feed a
    Matte node), shadow (a flat colored body) or hole (the room with you taken out),
    with a trail of fading echoes. It never turns the camera on by itself.
  • Every body feature streams over OSC as /opsia/body/<feature>.
  • Tracking runs once per camera frame, about half the cost it was; Hi-res runs it on
    every display frame for a fast camera or the finest landmarks.
  • Tracking runs on its own thread, so a camera no longer slows the picture : hands,
    pose, face and the silhouette together now cost the render about 0.1 ms a frame instead
    of 3 to 5 ms (and more on a busy GPU). A machine where that thread cannot start tracks
    on the main thread, as before.

Generate and master chains

  • Generated scenes move : each theme binds a few modulators across its layers in its
    family's way of moving (slow breathing for Organic, drawn cadences for film, stepped and
    on the beat for Glitch, sine and saw sweeps for Analog).
  • Generate uses the whole instrument : sources, effects, native nodes and blend modes
    it never picked now land, and nodes that read another layer get a layer in the scene.
    A new Living Surfaces family (Lichen, Rust, Mold Culture, Burning Paper, Dry Earth,
    Grown).
  • Three more families : Dome (made for a fulldome : no vignette, nothing framing the
    edges, slow motion overhead), Film Wall (your own films through a Collage, graded and
    damaged) and Node Workshop (one recipe node per theme). Test is now Feel
    Studies
    , at the end of the list.
  • 25 new master chains in three groups : Time & memory, Node recipes (layer-
    reading nodes wired to layers in use) and Dome (dome-safe : Context's vignette off,
    nothing framing the edges). Chain presets can now say which layer a node reads.
  • An Analog section in the source pickers : RGB Oscillators, Sync Osc, Slit Scan,
    Ramps, Column Scan, Differential and Interference.

Video

  • Any speed : slow motion down to 1/64× and fast up to 64×, forward and in
    reverse, on ordinary footage. When a clip's seeks run slow, the player steps keyframe to
    keyframe (ffmpeg indexes each clip's keyframes once, in the background). The ◇ smooth
    copy still plays the smoothest, and its button lights up when the settings will strobe.
  • ■ stop (pause and back to the in point), scrub the timeline playing or paused
    (the playhead lights up while dragged), and a clip row (◀ / ▶ and a dropdown) that
    steps through the other videos in the clip's folder, keeping speed, direction, loop and
    grain.

Sonify : the Collage voice

  • A seq view beside voices and mixer holds Sonify's sequencers, and the mixer and the
    sequencers now wear the voices' look : the same cards, pills, buttons and rows.
  • Resize the sequencers : drag the bar at a card's foot for more or less air between
    its rows, and its corner to widen them.
  • A real level meter : left and right, average level and peak, in decibels, orange
    when the limiter works.
  • The key sequencer composes the key of the whole instrument over time : a list of
    keys you write, a walk on the circle of fifths, a pick by shared notes (smooth or
    jarring), a pivot to another mode, or a key read off the picture's color and
    brightness (on the beat, or at each scene cut). Rate in free time (5 s by default, up
    to 5 minutes) or beats and bars, chance, an
    optional Euclidean rhythm, a pool of roots and scales, and a glide that slides
    every voice to the new key instead of jumping. Each mode draws how it thinks : a circle
    of fifths, a constellation of keys by shared notes, a clock of the notes, the picture's
    color wheel. It travels with the session and an installation starts it again.
  • The effects sequencer runs on beats and bars too, in phase with the key sequencer.
  • Every Sonify parameter explains itself on hover (the label and the slider).
  • The Chord breathes : a smooth pink noise blends into it (noise), a band on each
    note riding its swell and its waves, from a pitched breath to a wide wash (air).
  • Hear the Collage : turn on Sonify's new Collage voice and the wall's films play
    their own sound, all at once, in their own loops and speeds. Each piece is placed in
    the stereo field by where it sits in the frame and rings at a note of your key and
    scale : the centre low, rising toward the edges. Resonance goes from the plain films to
    only the tuned rings. Works with optimised clips too (it plays the originals' sound).
    A new deal crossfades over the Collage's own crossfade time : nothing cuts.
  • Collage : FX before shapes : process every film with the source's FX while the
    cut shapes (seams, contours, torn paper) stay crisp.
  • A Ring bank on the Collage voice, inspired by the S-4 : the films ring through 48
    tuned resonant bands on your key and scale, with decay, cutoff, slope, tone, tilt,
    waves, noise (free or locked to the tempo), detune and five filter voicings.
  • Waves on the Chord voice : a travelling level across the notes, so a held chord
    keeps moving.
  • A loop for the Filter voice : it replays one frozen stretch of noise, a flutter at a
    few hundred milliseconds, a buzz at a few.

Sessions, modulation and finishing

  • Modulation keeps its full swing at the edge of a range : a parameter at its minimum
    (Collage cuts at 2) moves over the whole cycle instead of sitting on the edge half the
    time. Sessions whose modulations hugged an edge now swing further.
  • A modulated on/off button shows it : the modulated color, and its live ON / OFF.
  • Spastic HOLD : the Spastic LFO rises once in a while on its rate, stays up for the
    HOLD time you set, then drops straight back down and waits for the next rise (0 = up
    until the next throw, as before).
  • Link a folder of sessions : right-click the Session Load button and pick a
    folder; every session in it (subfolders included) joins the dropdown, grouped under the
    folder's name. Linked, not copied : sessions saved there later show up too.
  • Click a modulation chip (Modulation panel) to turn that assignment off and on; it
    keeps its depth meanwhile.
  • ↺ default on Vibe, Context and Finalizer puts the stage back as a New session starts
    it.
  • Context shows what the picture really gets : when Proximity, Coalesce, Flow or the
    sequencer add blur, haze, trails or depth on top of its sliders, a line under Context's
    header says so (live blur 0.23 ← Proximity), and neutral sets those macros back.
  • New and Generate morph into the new composition over the Morph time, live and
    layer by layer, instead of snapping.
  • Move and copy effects between racks : right-click an effect for Copy to Master
    FX
    or Copy to Layer N FX, or drag it from one rack to another (Ctrl or Alt to copy
    instead of move; its modulation follows a move). An effect a rack can't host is refused
    with a popup that says why.
  • Animate Context's light : draw a path on the light pad and play it, with the
    Metasurface's controls (direction, loop, time, jump, wiggle). It is saved with the
    session and recalled with scenes.
  • Surface material evolution (Context) : a slider that keeps the surface from sitting
    perfectly still, as if a little wind moved the projector or the camera filming it. The
    material sways a few pixels in slow, irregular gusts, turns and breathes very slightly,
    and its light shifts with it. 0 (the default) is still. The section is now called
    surface material (plain "surface" also named the Metasurface).

dataflou : Palinopsia joins the mesh

  • Palinopsia is a dataflou node : turn on the new dataflou section in the
    audio/midi/osc tab and the other dataflou nodes on the network (same universe) see it,
    what it senses (audio, picture, body, modulators, Meta knobs) and what plays it (Meta
    knobs, layers, the feel macros, scenes, BPM), and can wire to it. No central computer.
  • A monitor of the mesh : every node, online or remembered, with its parameters and a
    picker to wire any of them to Palinopsia or from it, and every connection on the mesh,
    with ✕ to unwire. Values received and sent per second in the header.
  • Wires you make are kept and come back by themselves when the other node reappears.

Resolume OSC mapper (new page, key K)

  • Open a Resolume composition (.avc) : its layers, groups, columns, clips, effects and
    dashboard links become the columns of a matrix whose rows are Palinopsia's signals
    (modulators, Meta knobs, audio, vision and body features, any /opsia address).
  • A pin board : a connection is a pin colored by its signal's family (modulators, Meta
    knobs, audio, vision, body, OSC) that glows with what it carries, each Resolume group has
    its own colored band, rows count their pins, and a line under the board says what is under
    the cursor and what a click does, and an empty page shows how to start.
  • A dice for the pins : 🎲 wires every row to none, one or two random controls (never
    a clip or column launch, never the composition master), and ↶ puts the old pins back.
  • A Resolume section in the audio/midi/osc tab : it says when the mapper is sending
    (where, how many pins, messages a second), turns sending on and off, and opens the mapper.
  • Click or paint to connect, set an amount per cell, float / toggle / trigger columns with
    range and smoothing, Learn addresses from Resolume's own OSC output, scene → column
    triggers, 8 snapshots and a lock. The whole mapping is saved with the session.

Nodes and blend modes

  • Five new native nodes, usable in any rack : Remap, Luma Blur (with a
    depth-of-field mode on the depth map), Gooey (blur then threshold), Matte (three
    inputs) and Lookup (a live layer as the palette). Nodes can now take a second layer
    input.
  • LighterColor blend mode : the whole brighter pixel wins, hues never mix.
  • Weave, lumakey and consume work as layer blend modes against the stack below :
    weave displaces the two by each other's brightness, lumakey keys out the layer's black
    background, and consume lets the layer and the stack fight over the frame.

More to play with (every default keeps today's look)

  • Sources : Drift Field strata angle and reseed; Slabs spectrum light; Contour
    index lines and audio swell; Ten Print arcs; Particle Drift trail fade, density
    and audio pulse; Column Scan audio trace; Murmuration heading and veer; Filaments
    audio sway; Congeal clear and audio sparks; Ramps mirror and a movable center;
    RGB Oscillators chroma and audio FM; Recurse drift angle and per-level audio;
    Shapes density and spin; Op-Art audio; Direct Marks boil, fps, seed and
    audio gate; Metamorph birth; Sync Osc audio FM; Differential audio bands.
  • Text : a crawl (a ticker along the baseline), shrink to fit, letter drift, typewriter
    reveal, and one line at a time with next line.
  • Collage : speed spread (each piece at its own rate) and freeze.
  • Effects : per-column or per-band audio on Byte Corrupt, Databend, Mosh Blocks, Row
    Echo, Slice Shuffle, Tiles, Distort and Motif; fire on Databend and Row Echo; Threshold
    alpha key; Pixel Sort angle; Pixelate and Tiles average; Compress vary; Databend
    wrap; CRT Screen lines and moire; Scanlines moire; Rutt relief (hanging or
    mountain); Grade gamma; Hue Rotate rate; Palette cycle; RGB Shift wobble rate; Edge
    ink; Transform cutout; Wavefold and Colorizer invert.
  • Time and feedback : Light Trails knee and clear; Wide Time burn and clear;
    Difference Bloom hold and soft; Feedback Zoom center, drift, edge and clear;
    Force Lines slide, crawl rate, vary and audio; Granular stagger, sizeVar,
    edges and audio; Slit Buffer angle and grab; Smear and Streak smooth; Decay
    headSwitch; Abstraction rate and coherence.
  • Nodes : Feedback clear; Sediment snapshot; Eternalism freeze; Réponse and
    Chronoscan stride (longer memory) and a Chronoscan ping-pong sweep; Parallax sway rate
    and a smooth depth-of-field disc; Scanner audio lines; Afterimage dwell; Melt mix;
    Faultline and Decimate beat sync; Sillage scan, ground, swirl center and clear;
    Toile smooth strokes; Pulfrich zero plane; Corrode eats to transparent; Luma Blur smooth
    quality and mix; Matte transparent cut-out.
  • Context smoothing : the soft version of its ring-shaped blur and bloom.
  • Every non-obvious input now has a tooltip, with new presets and search words.

Changed

  • The Background reads like the stack : its strip comes first in the Layers column
    (Background, then Layers 1 to 4, bottom to top) and folds like a layer. Its group
    mode now really groups the layers (the Background shows through where they are dark
    or transparent), a fading Background no longer turns a multiply layer black, the
    outside fill matches the picture's grading, and speed, shadow and opacity can be
    modulated and MIDI-learned. New sessions and Generate let the ground show.

  • A Picture readout under Performance : every feature the picture reports, live, in
    plain words.

  • Sonify's output device in the audio/midi/osc tab, right under the input device :
    the same choice as on the Sonify page.

  • Changing scenes is fluid : a scene recall, Randomize, Variation, the sequencer and
    loading a session all morph over the Morph time, live, with no quick flick at the start
    (a short frozen dissolve used to cover every change, whatever the Morph time). Changed
    layers crossfade one by one, modulation fades from the old motion to the new, and a
    switch like mirror crossfades instead of flipping halfway.

  • Messages appear in the middle of the bottom toolbar, always in the same place.

  • A, B and BG look like buttons : click one to show that source in the Inspector.

  • The output shape comes last : film dust and scratches stay inside the shape, and
    the fill around it stays clean.

  • Torn paper looks torn (Collage and the Autocutter) : one piece over the other, the white core of the
    paper only along the upper piece's ragged edge, loose fibers, a soft shadow.

  • Performance has its own tab beside the setup tab, now called audio/midi/osc
    (Audio, MIDI, then OSC).

  • Context's blur stays where you put it. It starts at 0, and New, Randomize,
    Variation, Generate and Worlds never touch it. Saved sessions keep their blur.

  • The Finishing panel is in labeled sections. Vibe Palette, Context and Finalizer are
    split into named families (grade, character, 3D, hand-made film, film damage, output
    shape…), each with a colored header. A section whose switch is off folds away, rows drop
    the words their header already says, and rows that do nothing right now are grayed out
    with the reason in the tooltip.

  • Output page order, top to bottom : Composition size, Render scale, Mapping, Fulldome,
    Fullscreen output, Record, Spout / Syphon, NDI, HIVE, Flash safety, Lights, Installation
    mode. Flash safety starts collapsed (it stays on).

  • Flash safety holds softly : a held region fades out over most of a cell instead of
    showing the 6×6 measuring grid as hard-edged blocks (it showed when a slider was dragged
    fast). The held part is limited exactly as before.

  • The window title shows the version (Palinopsia v1.2.0, and : Output on the
    output window).

  • App text uses American spelling throughout, and no longer carries third-party brand
    or artist names : the film-stock Colorizer presets and two others are renamed
    descriptively.

  • No em dashes in the app text : empty menu choices read plainly (none, nothing,
    solid color, no saved sessions) and an empty readout shows -.

Fixed

The picture and the engine

  • A GPU crash no longer leaves the engine broken : after a graphics reset the picture
    comes back in about two seconds and keeps working (shaders used to fail to load until a
    restart).

  • The output shape no longer has a feather you can't remove : its edge is clean at
    any resolution, and a feather control softens it when you want.

  • Menus open where you click at any UI zoom : a layer's source list no longer opens
    far to the left of its button when the interface is zoomed.

  • Always the fast graphics card. On a laptop with two graphics chips, Windows could
    run Palinopsia on the slow integrated one (about 15x slower) unless you changed its
    graphics settings. It now asks for the discrete GPU by itself.

  • Fulldome no longer exhausts the graphics card. Two blue screens (0x116
    VIDEO_TDR_FAILURE, the driver out of resources) during dome shows traced back to video
    memory : the main canvas carried a multisampled color buffer and a depth buffer it
    never used, hundreds of MB at a 4096² master. The dome now adds about 300 MB instead of
    750 (measured), the live master stops at 4K (8K alone added about 1.9 GB), the shared
    capture never exceeds 4096, and the engine skips a frame instead of queueing more work
    when the card falls two frames behind. A few small graphics-memory leaks are closed.

  • Palinopsia asks for the high-performance graphics card on laptops with two.

  • Context at zero is exactly zero : with no surface material, a hidden relief still ran
    on flat 8-bit maps and softened the whole picture slightly. Texture off is now an exact
    passthrough.

  • Surface materials : seven non-square scans were stretched to about twice their
    height (see above), and paper crumpled repeated a streak of dark pits as vertical
    lines across the frame; both fixed.

  • Knobs no longer jump the picture. Motion driven by a rate knob used to leap when the
    rate moved, so an LFO, a Morph or MIDI on a rate turned into strobing noise. Rates now
    accumulate smoothly on the layer's own clock (Speed, freeze and reverse still apply),
    across the Organic family and the glitch effects.

  • Long shows stay alive. Glitch effects, grain and CRT / VHS parasites used to settle
    into fixed patterns after an hour or two; every generator still moves, unrepeating,
    after 24 hours.

  • Audio-reactive generators read the right data. The waveform and spectrum could swap
    places, and the spectrum is now spread musically (30 Hz to 16 kHz) instead of bunching
    to one side. Any generator that listens gets the audio, on the background slab too.

  • Minimizing the window no longer stalls the show (projector, Spout, NDI, Sonify and
    OSC out used to drop to about one frame a second).

  • Freeze-proofing : switching a Parametric, Text or Collage slot away, or disposing a
    film, output-shape, flash-safety or depth-shadow stage, could freeze every shader draw.
    They all survive that, and a GPU reset, now.

  • Multi-pass effects no longer see a black frame when they start (which could also
    stick in their memory).

  • Fresh installs start with the intended defaults : Flash safety on at 0.35, the Flow macro
    neutral, Morph at 1 s, the audio monitor at 0.8 (they started off, fully engaged, at 0 ms
    and muted).

Sources

  • The Collage's freeze, and every toggle, can be modulated. A modulator on a switch
    that was off did nothing, and one that was on kept it on. Now at depth 1 a toggle
    follows the modulator (on half the time with an LFO), and less depth leans toward its
    stored state. A menu on its first choice can be modulated off it too.
  • Collage is lighter : bounded upload work per frame, fast auto deals re-cut without
    reloading files, a broken file is skipped, and a hidden background Collage stops
    decoding.
  • Dragging a modulated slider moves its setting by as much as you drag, instead of
    jumping it to wherever the modulator was.
  • Collage's cuts can be modulated : the wall grows and shrinks a piece at a time
    instead of reshuffling, and films changes no longer restart every film.
  • All 23 generators audited : each keeps moving after 24 hours (Slabs froze after
    three hours, Particle Drift, Ten Print and Ash fell into lattices and stripes); lines
    keep a steady pixel width; the aspect is right at 16:9 and on the square dome; presets
    set every input, so one no longer leaks into the next. Murmuration's birds no longer
    accelerate into strobing dots, Congeal fades back to black, and Metamorph, Differential,
    Direct Marks, Filaments, Column Scan, Shapes and Solid Color each lost a visible flaw.
  • Collage : churn no longer collapses the wall onto one film, pieces stay sharp at 4K,
    crossfades and seeks no longer stick, Speed applies, and a minimized window no longer
    freezes the wall.
  • Text : the weight dial works on every font, size and spacing move smoothly (a glyph
    atlas), stretch stays sharp, and a Text layer is no longer an opaque black slab.
  • Parametric : Raster hears the audio, the spectrum uses its whole width (512 log
    columns), the spectrogram scrolls sharp at any frame rate, and Bars follow scale.
  • Mosaïque matches tiles at last (its matcher never compiled).

Sonify

  • The Collage voice's Ring bank no longer rasps on its driven voicings (MS-20,
    Steiner, K35) : the drive clips each band, not the whole mix of pieces.
  • The sound comes back by itself after an audio device error (an interface unplugged,
    the output switched), even in the middle of a long installation.
  • Double-click a modulation depth slider to put it back to 0.5, like every slider.
  • The Collage voice no longer cuts out at each deal (it went silent for a fifth of a
    second) : it crossfades.
  • A full audit of the sound engine, the page and the OSC addresses :
    • The Filter voice's noise had a hidden 4.6 Hz loop. It is true noise now, and the
      loop is a knob.
    • The reverb mix knob works. It was ignored; 0.6 is the old level.
    • No more clicks when a voice switches (the sequencer did it in rhythm).
    • Modulation no longer drops out while you move a slider.
    • The echo tail plays out instead of stopping mid-echo.
    • Events notes don't overwrite each other.
    • Very high notes stay in key.
    • The audio thread works a third as hard, with the same sound.
    • The probes sit on the picture, not on the black bars. A held line drags along
      its own path, the Orbit shows its real shape and the sweeps run at their real speed.
    • OSC index addresses (octaves, paths, counts) are integers now, and there are new
      addresses for the taps, octave ranges, sync, shape and loop.
  • A truer stereo field : Chord, Flow and Events notes keep their loudness wherever
    they sit, Chord's spread keeps the bass in the middle, and each Collage piece sounds
    from its place in the frame.

Effects and nodes

  • Context's Vibe Color button works : it lights the scene in the color the Vibe
    Palette is painting with (a color chord's too), and turns the light up if it was off.
  • 52 effects audited. Highlights : texture reads the loader silently rewrote (Databend,
    Compress, Aperture, Optical Rain); eight effects that turned a transparent layer into a
    black slab; knobs that did nothing (Pixel Sort length, the Compress and Pixelmask grids,
    digital grain size); Rutt drew no lines in bright areas; Phosphene burned in for good;
    Distort's bulge and pinch were swapped; four time effects showed the previous frame;
    sizes now follow the frame height, so 4K and the dome keep the 1080p look. The
    corrupted-data smears, stepped blocks, CRT moiré and edge fringes stay the default look.
  • All 25 native nodes : they keep the layer's transparency, run on the layer's clock
    (Speed, freeze and the background's slow clock), read the audio, and restart cleanly
    after PANIC. Feedback no longer lifts black into gray fog, Sediment's memory fades,
    Datamosh's mask clears, Réponse's gain works, Chronoscan shows the present at full
    resolution, Toile costs about 3 ms at 4K instead of 14. Their signature looks (Feedback's
    heat, Datamosh's melt, the Autocutter's torn paper) are kept.
  • Flash safety now does its job : it counts real flashes per second in real light, per
    region of the frame. A 10 Hz strobe comes out clean at the default setting, and ordinary
    content passes through untouched.
  • The finishing chain : Vibe no longer turns clipped highlights gray or black, Context no
    longer delays the whole master by a frame or leaves a permanent ghost, sharpening
    survives 3D, and torn VHS lines no longer smear the frame edge.
  • PANIC also clears the effects' trail memories, which could hold a ghost for good.

Video

  • OSC video speed matches the slider : …/video/speed now spans 1/64× to 128× like the
    transport slider (it stopped at 1/28×, so a controller and the slider disagreed).
  • Above 8× a clip froze on real footage (each frame was an exact seek, 0.5 to 3 s on
    heavy 1080p or 4K), and below 1/16× it silently played at 1/16×. Both now play at their
    set rate (measured : 1/64, 1/28, 8 and 64).
  • Grain voices were upside down, and while one loaded it could drop the whole grain
    picture for a few frames.
  • A paused video ignored seeks (OSC /video/position, modulation) : it lands now.

Resolume mapper

  • A click toggles the pin you clicked : at a UI zoom other than 100 % it toggled one far
    to the side. The scrollbars no longer flicker.

Output and recording

  • Changing sessions is a clean cut : the previous session no longer keeps playing
    on the projector while the new one loads. The picture holds still until the new
    session is ready, then dissolves into it.
  • Recording can always be stopped : a take the encoder refused used to hang the stop
    button. It now ends by itself and says why.
  • HIVE output starts (it asked the hardware encoder for a frame rate it refuses).
  • A recording that never received a frame no longer leaves an empty file behind.

Randomize

  • A pinned dice range keeps the current value instead of forcing one; the walk and
    Variation follow the same rules; palettes roll as one hue from near-black to pale
    instead of five clashing colors.

Performance (measured at a 4K composition)

  • Projector window open : 25 to 27 fps before, 60 now.
  • Output page with the 4096² dome simulator : 47 to 49 fps before, 60 now.
  • Spout at 4K : 0 fps before, about 58 now.
  • Projector + Spout + a DXV3 take together : 57 to 60 fps.
  • NDI 4096² at 30 fps, even minimized.
  • Fulldome at 4096² : about 300 MB of video memory instead of 750.
  • Body tracking : off the picture's thread, about 0.1 ms of its time a frame (3 to 5 ms
    before, more on a busy GPU).

Known limits

  • Syphon is built in CI but has not yet been tried on a Mac with a Syphon client. If it
    misbehaves, please open an issue.
  • NDI is tested on Windows. The macOS and Linux paths are written but untested, the
    builds do not bundle the NDI runtime (use the one-click install, or NDI Tools), and on
    Linux the runtime has to be installed by hand.
  • The hardware video encoder stops at 3840×2160 : larger takes (the 4K dome) record DXV3.

Downloads

Platform File
Windows Palinopsia-1.2.0-win-x64.exe (installer) or Palinopsia-1.2.0-portable.exe
macOS (Apple Silicon) Palinopsia-1.2.0-mac-arm64.dmg
Linux Palinopsia-1.2.0-linux-x86_64.AppImage or Palinopsia-1.2.0-linux-amd64.deb

Builds are unsigned :

  • Windows : SmartScreen may warn, click More info → Run anyway.
  • macOS (Apple Silicon) : not notarized. Drag Palinopsia into Applications first (run
    from the disk image or Downloads, macOS runs a hidden temporary copy), then run
    xattr -cr /Applications/Palinopsia.app once in Terminal, or open it and click Open
    Anyway
    in System Settings → Privacy & Security (right-click → Open no longer works
    since macOS 15). The first launch asks for the local network, and for the camera and the
    microphone when you use them : accept, or OSC, NDI and light output stay silent.
  • Linux : chmod +x the AppImage, then run it.

Intel Macs (x64) : this release ships Apple Silicon only. On an Intel Mac, build from
source (npm install, then npm run build:mac).

For developers

  • Electron 44, electron-builder 26, Vite 7, electron-vite 5. The app's file schemes are
    CORS-enabled (Chromium 152 requires it for the films and the tracking models), screen
    capture asks for display-capture, and file pickers remember their folder (Electron 43
    opens a picker without one in Downloads).
  • tools/shader-rig checks any generator or effect offscreen : a 24-hour show in one
    step, knob scrubs, 4K cost and stills. tools/test-build.sh runs an isolated copy of
    the app for automated tests, beside the real one.
  • A shader can declare a wrapped phase (uniform float PH_x; // wrap <period>) to stay
    precise over day-long shows.
  • docs/bibliography.md cites the research papers behind the instrument.

Full details in CHANGELOG.md.