Skip to content

Palinopsia v1.2.6 : points and planes

Choose a tag to compare

@github-actions github-actions released this 12 Oct 19:08
· 247 commits to master since this release

Palinopsia v1.2.6 : points and planes.

A release about space. Lattice puts points in three dimensions in front of a moving
camera, Perspective lays any layer on a plane that runs off to the horizon, and
Lowercase learns to lean its bars into crossing slants. A new Space family in Generate
and a Space group of master chains reach all of it in one click. The fulldome output
becomes something you can play : every mapping slider takes a modulator or a Meta knob,
spin reaches a full turn a second, and feather softens the picture's own edges. And the
console, which Chromium had been filling with a readback warning thirteen times a second
since launch, is quiet.

Highlights

  • Lattice, a new source : a lattice of points in space seen through a moving camera.
    A floor of dots that sinks into a gravity well and rings with ripples, heaves like a
    sea or rises with the sound or with another layer's picture; or a room full of points
    the camera flies through forever, streaking them into a warp. Overlapping dots never
    pile up into a glow, and the ground can be transparent so the layers below show
    between the points. Ten presets, from Gravity well and Calm sea to Crystal room and
    Warp.

  • Perspective, a new effect. It lays a layer on a plane in space and looks at it
    through a lens : lean it back into a floor running to the horizon, swing it into a
    wall that runs off to the side, curl it like a curved screen or ripple it into a
    travelling ribbon. lens goes from a flat telephoto to a wide angle, fog lets the
    far side melt into the layers below, travel slides the picture along the plane. Put
    it after Lowercase, Op-Art or Interference and flat line fields become architecture.

  • Lowercase : slant, a ninth figure. Full-height bars that each lean their own way and
    cross into X shapes and fans, thin ones and fat ones, dealt on the step and held like
    every other figure. split is how far they lean, density how many stand. Three
    presets : Crossing, Leaning comb, Fallen bars.

  • A Space family in Generate : eight themes built around the new pieces (Gravity Well,
    Starfield, Crystal Room, Dot Sea, Spectral Floor, Line Wall, Data Floor, Crossing), and
    a Space group of nine master chains that lay the whole picture on a floor, a wall,
    a ribbon or a horizon (Floor, Corridor, Ribbon, Horizon, Curved Screen, Data Wall,
    Halftone Floor, Scan Relief, Starlight). Generate now counts 108 themes, the chain menu
    109 chains.

  • Fulldome you can play : every mapping slider (rotate, spin, feather, turns, top,
    bottom, azimuth, elevation, width, roll, surround, scale, offset) takes a modulator or
    a Meta knob, and turns the modulated color while it moves : a screen drifting around
    the room, a panorama breathing toward the zenith, a full-dome frame swelling on the
    beat. spin reaches 360°/s either way, a full turn a second, and never jumps when it
    changes. feather starts at 0, every edge crisp.

Fixed

  • Fulldome : feather now softens the picture's own edges in every mode (the
    screen's border, the panorama's top and bottom, a contained frame), not only the rim
    below the horizon; the projector window no longer shows the Mapping grid over a
    domemaster; in Screen mode the surround's top and bottom sit under their own heading
    (behind the screen); and changing spin no longer makes the dome jump.

  • A console flood, and a hidden cost, gone. Reading the picture back (for the vision
    features, Sonify, the depth input and every output capture) made Chromium copy each
    read-back buffer into shared memory, a copy that was never used and that printed a
    performance warning each time, about thirteen times a second from the moment the app
    started. Besides the noise, it used up the browser's budget of console messages, so a
    real graphics error would have gone unreported. Now no copy is made : no warnings, and a
    projector or Spout capture costs about a third of what it did.

  • Generate never sweeps a whole-frame flip. A theme's motion could bind Lowercase's
    flip, which inverts the whole frame on every swing : a strobe. It now joins the seed
    in the inputs no theme modulates.

Opening an older session

Everything opens and plays as before. Two looks change on purpose :

  • a dome mapped in Screen mode has a crisper border at feather 0 (it kept a hidden
    1.5 % softness), and a fresh dome starts at feather 0 instead of 0.01. A dome you saved
    keeps its own feather : double-click the slider to set it to 0;
  • a dome that was spinning keeps its speed, and now turns smoothly when the speed changes.

Install

Platform File
Windows Palinopsia-1.2.6-win-x64.exe (installer) or Palinopsia-1.2.6-portable.exe
macOS (Apple Silicon) Palinopsia-1.2.6-mac-arm64.dmg
Linux Palinopsia-1.2.6-linux-x86_64.AppImage or Palinopsia-1.2.6-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. 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. 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 +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

  • Native generators can read the sound and another layer. NativeGenerator gains an
    optional feed(audio, side), called by the Compositor just before render : the shared
    128×2 audio texture and the slot's sidechain layer (the Background feeds the sound
    only). Lattice is the first to use it; the Inspector's sidechain row is a per-source
    entry with its own hint.
  • Generate recipes gain stackFx (per-layer effects that close that layer's rack : the
    effect a theme cannot do without), bgOpacity (lower it when the layers carry their
    own dark ground : in group mode the Background shows through every dark part) and a
    motion recipe's skip (a RegExp of inputs that family never binds).
  • A new modulation target, { kind: 'dome', field }, over DOME_MOD_RANGE in
    shared/dome.ts : a final override on the dome stage through
    Compositor.setDomeParam / domeParam, the base back from the dome settings every
    frame.
  • Read-back buffers use STREAM_COPY, never a *_READ usage : with a read usage
    Chromium makes a shadow copy at every fence, which these reads never used.
  • A GLSL lesson from Lowercase slant : a texture read inside one branch of a figure
    switch made the compiler run every figure for every pixel (1.9 → 12.5 ms at 4K). ISF
    shaders are GLSL ES 1.00, with no gradient-free texture read in a fragment shader : read
    textures outside the branches.