Skip to content

vizz v0.26.0

Choose a tag to compare

@github-actions github-actions released this 22 Sep 10:01
· 97 commits to main since this release
3e4239d

macOS app bundle with Syphon embedded. Signed with a Developer ID and notarized by Apple, so it opens with a normal double-click — checked in CI with spctl and stapler validate before publishing. Appears in Resolume/VDMX as Syphon source 'vizz'; OSC control on udp/7000.

What's in it

  • Every look wears a picture of itself. The preset row on the performance layout is now a grid of tiles, and each one carries the master output as it was when that look was saved. A preset is a list of numbers under a name somebody typed at 2am; by the next gig the name is a guess, and the only thing that reliably says what a look is, is the look. Pictures are taken on save, and the first time a look is fired — a second after, so the morph has finished — which is what gives the built-ins and everything you saved last year a tile worth looking at, with no migration and nothing to ask for. update picture on a tile's menu takes a fresh one.
  • Looks are grouped by what they were built on. Clouds, shapes, attractors, built-ins — each with its own colour on the tile's leading edge and as the heading in front of its group, so the three looks you made on the scan sit together instead of alphabetically between two attractors. The slot number stays on every tile: grouping changes where a look sits on screen, never what fires it.
  • A first launch opens playing. Tunnel is on screen, the play screen is up, and one press of react makes the picture follow the music — the kick on the size, the loudness on the glow, the snare on the brightness. A card names the three keys that matter and gets out of the way. The window opens at a size the play screen can use and remembers it.
  • Every punch has a key. Space flashes, S strobes, B blacks out, F freezes, I inverts, and a held key no longer repeats itself. T taps the tempo, with a count. Alt-click fires a column. Escape asks twice.
  • What just happened is said on the screen you are watching. A recall names the look it fired, a capture names the look it made, a device that goes away is a notice rather than a log line, an output that did not start says why, and a file held over the window is answered before it lands.
  • Looks keep their names and their pads. The save field keeps its name and offers the current look; a look can be renamed from either list and every pad on every page follows; a controller's preset buttons follow their looks when the list re-sorts; storing over a look that other pads play forks it rather than changing them all. A tile can be dragged onto a pad. The recall ceiling is 512, not 64.
  • The desk says more, in fewer places. Every parameter's hover says what it does, in the README's own words. The depth slider says its swing in the parameter's units. The band meters carry the gate line, and a modulator whose band never crosses it says so. The bpm wears its source — MIDI, AUTO, or a question mark when it is set but not steering. The autopilot counts down to its next step. The audio input is a click target on the stage strip, and the MIDI section lists every binding.
  • Two buttons turn the pages. /deck/next and /deck/prev step through the set list and stop at the ends; the APC40 ships a blackout, a tap and its scene-launch row on the pages. The words on screen are accepted on the wire as OSC aliases.
  • A take says what it is. It records JPEG or PNG and says which, the chip says the size and rate, the folder is named for the look, a take.json sits beside the frames, reveal opens the folder, and a countdown can be cancelled from the stage. Bands, the recording setup and the screen you left on survive a restart.
  • Every cloud has a page, and a source. vizz.letissier.ie/clouds lists all sixty-six generators and fifteen simulations with a picture of each, its knobs, and the paper it comes from. Almost none of this is ours — Thomas' circuits, Sprott's search, Stam's solver, Jones' slime mould, Bak, Tang and Wiesenfeld's sandpile — so the credit now sits on the catalogue entry itself, where the app can show it and it cannot drift away from the code. The page is generated from that catalogue and its pictures are drawn by the app's own code.
  • And so does everything else. Below the catalogue, the same page now carries where the rest of the picture came from: the shapes the shader draws with no slot filled, the wind over them, the pattern stack and its moiré, the cosine palettes and the tone shoulder, the normals estimated off a scan, the FFT, the onset detector and the tempo autocorrelation, the feedback trails. Lorenz, Amidror, Quilez, Reinhard, Hoppe, Harris, Dixon, Ellis, Sandin. Where nothing outside vizz is owed, the line says so instead of leaving a blank that reads like a citation somebody forgot. It was briefly two pages; two pages over the same ground diverge the moment one of them is easier to edit.
  • Ten more clouds and two more alive. The three-dimensional Hilbert curve, whose whole point here is that a cloud in Hilbert order crawls along a line that fills a cube; Lorenz-96, the toy atmosphere every weather forecasting scheme meets first; the forced Duffing oscillator, drawn on the cylinder of its own forcing phase; Gumowski–Mira from CERN; Newton's basins and the Markus–Hess Lyapunov fractal as reliefs; Dini's twisted pseudosphere and Enneper's minimal surface; a spirograph; and the figure-eight knot. Alive: sand, the Abelian sandpile, and spirals, the Belousov–Zhabotinsky reaction.
  • The automaton had stopped. sim:life shipped in the Clouds rule, which grows into masses and then holds them: sixty changed cells a generation out of a hundred and ten thousand, which in a live slot is a still image with a name on it. Every test passed, because they asked that it neither die nor flood. It now ships in Pyroclastic, which boils; a test measures the churn rather than the census; and any rule that stops is started again.
  • Fifty-six clouds from equations, in a menu that can hold them. The generate… menu groups them by what they are rather than by which shelf a look files under: flows, maps, searched, surfaces, curves, fractals, grown, patterns. New in the last of those: the gyroid with Schwarz' P and D, the triply periodic minimal surfaces that divide space into two labyrinths that never touch; an icosahedral quasicrystal, six plane waves sharing no period, so the pattern never repeats and is nowhere random; phyllotaxis, whose angle is the knob — the golden angle is the only one that never lines up, and a tenth of a degree off it the packing falls into spiral arms; the standard map drawn on its torus, a portrait of two hundred and fifty-six orbits rather than one; Hénon and Ikeda; a Klein bottle and Boy's surface; the Mandelbox, which is architecture where the Mandelbulb is organic; a quaternion Julia set; the Sierpinski gasket with a turn folded into every step; and an aggregate grown by diffusion, where nothing in the rules mentions branching and a dendrite comes out anyway.
  • Forty-four clouds from equations. The clouds section's generate… menu, or --cloud gen:thomas, fills a slot from a formula instead of a file: twenty-three strange attractors — Thomas, Halvorsen, Dadras, Rössler, four-wing, Chen, Sprott B, Nosé–Hoover, Arneodo, Burke–Shaw, Chua, Hadley, Rucklidge, three-scroll, Rabinovich–Fabrikant, Aizawa, Newton–Leipnik, Sakarya, the Rikitake dynamo, Shimizu–Morioka, the finance system, Coullet, Genesio–Tesi — traced in time order so the cloud crawls along itself; the Clifford and de Jong maps lifted into depth; a Gielis supershape; a real spherical harmonic drawn as an orbital; a Lissajous knot and a torus knot; the Hopf fibration; Chladni sand; four L-system plants; a Voronoi foam; the Sierpinski tetrahedron, the Menger sponge and the Mandelbulb; the Mandelbrot and a Julia set as reliefs. Each is a cloud like any other once made — chosen by name, crossed to with a scene change, captured as a look's source — and comes back on launch.
  • Two attractors that were not attractors. Every named flow is now tested for chaos rather than for looks: a test integrates all twenty-three and measures the largest Lyapunov exponent, following a neighbour and renormalising. Two failed. Halvorsen at a = 1.89 and the Hadley circulation at a = 0.2 had both fallen onto limit cycles — which fill the same box, crawl along themselves, and look in any still frame exactly like attractors. They are back on 1.4 and Lorenz' own 0.25, and both are chaotic again.
  • Wind on every form. /shape/wind blows through the field — an Arnold–Beltrami–Childress flow, a steady solution of Euler's equations, divergence-free and chaotic in its streamlines — read as a displacement of where each point already is, so it costs no state and works on a scan exactly as on a sphere. Zero by default; every look saved before it draws as it did.
  • Knobs on the generators. The supershape's exponents, a knot's windings, the Chladni mode numbers, the Julia constant, the plant's rule and angle, the automaton's rule: pick one and its row opens, and the spec carries what you set — gen:torus-knot?p=2;q=5. quadratic is Sprott's search for a chaotic quadratic map, and its one knob is the seed: roll is an attractor nobody has seen. quadratic flow is the same search with an integrator inside it — random quadratic vector fields rather than maps, which give smooth ribbons where the maps give dust.
  • Thirteen clouds that are alive. slime is Physarum: sixty-five thousand agents, one per point, that leave a trail and steer towards the strongest one they can see. Nothing in the three rules knows about paths, and a transport network comes out anyway — which is what the real organism does when it reproduces the Tokyo rail map out of oat flakes. swarmalators swarm and synchronise at once, each depending on the other: five states out of two numbers, with sharp transitions the audio walks between. cloth is a sheet of sixty-five thousand particles hung from its top edge in the same Arnold–Beltrami–Childress wind /shape/wind blows, with the links solved as constraints rather than springs, because a constraint pass cannot add energy.
  • Ten clouds that are alive. simulate… beside receive runs a simulation as the live cloud, driven by the audio: fluid, Stam's stable solver for the Navier–Stokes equations on an endless sheet, with vorticity confinement and sixty-five thousand tracers; reaction, Gray–Scott reaction–diffusion, where spots grow, split and heal; flock, four thousand boids drawing streaks; wind, tracers in curl noise; kuramoto, coupled oscillators that a loud passage locks into a ribbon; life, a three-dimensional cellular automaton; orbits, five hundred bodies pulling on each other round a heavy centre, each drawing its last two seconds as an arc; pendulum, four thousand double pendulums hung in a sheet that swings as one surface, creases, then tears; smoke, the fluid solver in three dimensions with heat, a plume that rises and rolls up; and liquid, four thousand particles of water in a box that tilts, gravity swinging round once a bar so it pours from corner to corner. The one running is remembered across launches.
  • The automaton grows a third field. A rule is survive/born/states now. Past two states a cell that fails to survive counts down instead of dying, one state a generation, and only the top of the ramp counts as a live neighbour — the ash left behind is drawn dimmer than the front, and turns a flat rule into a solid that grows, hollows and crusts. 4/4/5 is a spiking crystal, 4-7/6-8/10 boils.

The same list, with the pictures, is on vizz.letissier.ie. Where every generator and simulation came from is on vizz.letissier.ie/clouds.

Full Changelog: v0.25.0...v0.26.0