OperatourReleases

Releases

Every build, what changed in it, and what was measured. Newest first.

Operatour is in public beta. The beta is the stage before v1, not a label worn by a series of releases, it ends on a user count, and then v1 ships. What each numbered version will contain is on the roadmap.

0.3.0 - public beta · macOS, Apple Silicon · 14 September 2026

The bin, on the layer card.

What changed

  • The layer card's remove key is the bin, the one mark for removing anything across Sialk's applications. Nothing else changed; the number rolled over from 0.2.9.

0.2.9 - public beta · macOS, Apple Silicon · 14 September 2026

The beta mark, put right.

What changed

  • The beta mark beside the wordmark is a β again. The uppercase lockup had turned it into a B. Nothing else changed.

0.2.8 - public beta · macOS, Apple Silicon · 13 September 2026

The show's file gets the company's name for its documents, and the status bar says where the stage is.

What changed

  • A show is a .slko file. Operatour's document, beside Sialk Player's .slkp. Every show saved by an earlier beta as .sialk still opens, by double-click or from the File menu, and is saved as .slko from then on. Nothing inside the file changed.
  • The projector in the status bar. The dot is red while the stage is on a display, and the display is picked in place, the readout Playery has carried since its first build.
  • The library at its new address. The library window inside the application reads the company's library at sialk.net/library, where the site now keeps it.

0.2.7 - public beta · macOS, Apple Silicon · 12 September 2026

The surface in the company's new world, and a way in for the files it could not play.

What changed

  • The Vision Mixer. A dark chassis, one grotesque for words and one mono for numbers, Operator's own cream as the colour of anything that is on, keys and faders at one scale, the status bar and the bank at the top and bottom with the traffic lights on the chassis, one icon set. The same world Playery wears; each product keeps the colour of its own mark.
  • Prepare for the stage. A video layer this build cannot decode, ProRes or HAP in a .mov, stops and its card shows a PREPARE key. One press re-encodes it on the ffmpeg already on the Mac and starts the layer again from the result, in place, with its mix and bindings kept. Without ffmpeg the message says the one command that installs it. Nothing is bundled.
  • A licence pane. A Studio, Educational or AI key unlocks the stems and its tier stands beside the wordmark. The key is checked on this Mac, never over the network, and a show is never interrupted for it.
  • The stage no longer guesses between several external displays with none chosen; Settings chooses. One screen still opens itself.
  • The shell, shared with Playery: one sialk:// scheme with byte ranges for video, one packager, one run log, one licence check.
  • A disk image, Sialk-Operator-beta-macOS.dmg, beside the zip: open it, drag the app to Applications. Both carry the same signed build.

Measured on the machine it was built on - Apple M3 Max, macOS 26, Electron 43.4.1. codesign verifies the bundle deep and strict, the staple validates, and Gatekeeper's own assessment answers Notarized Developer ID. A GLSL layer paints at 120 frames a second over the shell's scheme, as 0.2.6 did over its own.

0.2.6 - public beta · macOS, Apple Silicon · 12 September 2026

The first build macOS opens by double-clicking.

What changed

  • Signed and notarised. The build carries a Developer ID signature with the hardened runtime, Apple's notary service has checked it and the ticket is stapled to it. No right-click, no Terminal, no Open Anyway; the only thing macOS asks for is the microphone, which is how it hears the room. The install page is shorter for it.
  • The archive is named for the product, Sialk-Operator-beta-macOS.zip.
  • The contract packages' repository links point at their current home.

Nothing else moved: what plays, the library and the surface are 0.2.5's.

Measured on the machine it was built on - Apple M3 Max, macOS 26, Electron 43.4.1. codesign verifies the bundle deep and strict, the staple validates, and Gatekeeper's own assessment answers Notarized Developer ID. The notary service took 31 minutes for the first submission from this account and under one minute for this build.

0.2.5 - public beta · macOS, Apple Silicon · 11 September 2026

The library inside the application, an empty and untitled start, and the surface brought toward its drawing.

What changed

  • The library opens inside Operatour. Press + add layer, then library: a window shows the library's cards, and pressing one puts the visual on the stack a second later, unpacked under Documents/Sialk/library as a folder you can open. The window stays open for more; Escape closes it. Offline, it says so in one sentence.
  • It opens empty and Untitled. Nothing plays until you add it. The first ⌘S asks for a name and a place; every ⌘S after that saves silently.
  • Every layer card carries a live thumbnail of its own picture. Remove sits beside the reorder buttons. The modulation pane is MOTION, as the design has it: the parameter with its base, one line per modulator that opens to its controls, and one way to add.
  • The microphone closes while Sialk: Connect feeds the master, so the wall carries no recording indicator when the DAW is the source. It reopens the moment the plugin stops. With a microphone as the source the indicator stays; the output page says how Apple lets you hide it on an external display.
  • The dropped-frame count follows the display the window is on. Dragged from a 120 Hz panel to a 60 Hz one, it counted sixty a second that never dropped.
  • The numbers in the header keep their place as they change; the empty surface says five words; the stage window has square corners; the application's own links point at their current addresses.

Measured on the machine it was built on - Apple M3 Max, macOS 26, Electron 43.4.1, 120 Hz display. The packaged build, one library visual (Knot) at 3840×2160 for one minute: 3,576 frames painted, 3,576 transferred, 30 dropped as the window came up, p99 9.8 ms.

0.2.4 - public beta · macOS, Apple Silicon · 11 September 2026

Clean edges, and every layer's alpha honoured.

What changed

  • Soft edges are clean, and alpha means what it says. The compositor uploaded every layer's frame as straight colour when it was premultiplied, so Chromium divided each pixel by its alpha on the way in. Two things followed: colour never scaled with alpha, so a half-transparent layer sat on the wall at full brightness; and every soft edge came out speckled with hues that were never drawn. The frame is now kept as it came.
  • The library retuned to match. The visuals had been seen, and judged, through that fault, so the translucent ones now paint near-solid where something is drawn and transparent where nothing is, which is what a stack needs; five that wrote straight colour write it premultiplied, so they no longer glow over the layer beneath. Every thumbnail re-rendered through the corrected path.

Measured on the machine it was built on - Apple M3 Max, macOS 26, Electron 43.4.1, 120 Hz display. A flat grey disc at alpha 0.5 composites at half its colour and its soft edge stays grey at every alpha. The packaged build, one library visual (Hexes) at 3840×2160 for one minute: 3,589 frames painted, 3,588 transferred, 6 dropped, p99 10 ms.

0.2.3 - public beta · macOS, Apple Silicon · 11 September 2026

The application is Operatour, the wall is the stage, and a layer added to a running show reaches it.

What changed

  • The name. The application is Operatour; Sialk is the company. The mark says so, the window says so, and the bundle is Operatour.app. The output on the wall is the stage, and only that.
  • A layer added while the stage was open reaches the stage. Until now the stage showed only the layers that existed when it opened; anything dropped on a running show played in the preview and left the wall black. With a second display the stage opens itself at launch, so this was the ordinary case, not an edge.
  • The library has fifty-four visuals: twenty new ones, and five that carry a photograph or a clip inside the folder, which a visual may now do.
  • The application's own links point under /operator.

Measured on the machine it was built on - Apple M3 Max, macOS 26, Electron 43.4.1, 120 Hz display. The packaged build, one library visual (Hexes) at 3840×2160 for one minute: 3,570 frames painted, 3,567 transferred, 59.9 delivered per second at worst, 44 dropped in the first second as the window came up, p99 9.8 ms.

0.2.2 - public beta · macOS, Apple Silicon · 10 September 2026

Twenty-nine visuals in the library, and four things put right.

What changed

  • Multiply keeps what the top layer does not paint. It multiplied everything under a transparent pixel by zero, so a transparent layer set to multiply turned the whole output black. The picture beneath now shows through where the layer is empty, and fading a multiply layer out reveals it.
  • A Three.js scene receives its colour controls as hex strings, as the scene convention says. Until now no scene's colour control had any effect, the bundled one's included.
  • A Three.js layer is named by its folder, not scene.
  • A control with more than four choices is a menu, so it fits on one line.
  • p5.sound is supplied beside p5, in place of whichever copy a project's page loads. A project with loadSound() in preload() used to wait forever on an old copy of the addon, or fail to find it at all.
  • The library has twenty-nine visuals: every runnable example and eighteen new ones, each with controls, free.

Measured on the machine it was built on - Apple M3 Max, macOS 26, Electron 43.4.1, 120 Hz display.

One minute at 3840×2160, this exact build, the library's Cubes scene 7,201 frames at 120.0/s, 0 dropped, p99 9.5 ms, every painted frame transferred (3,584 of 3,584)

sha256 Sialk-beta-macOS.zip: e98eae401c7fe4380f5eb000d36e91a1ab93cc6bd75f9b89fddcb51d1ad26616

0.2.1 - public beta · macOS, Apple Silicon · 10 September 2026

Other people's sketches, as they come.

What changed

  • Shaders from glslsandbox and The Book of Shaders run as they are. A shader's own time, resolution and mouse, or u_time, u_resolution and u_mouse, are set every frame, and an #extension line anywhere in the file is lifted to where the compiler wants it. Before this, the glslsandbox default shader did not compile in Sialk. See writing a GLSL sketch.
  • A p5 project of more than one file loads. Sialk reads the project's index.html for the scripts it loads from its own folder, in order; p5 itself stays the copy Sialk supplies. Before this, any editor project with a second script died on its first line. See writing a p5 sketch.
  • Nothing else in the build changed. Three.js scenes, video and the audio contract are as in 0.2.0.

Measured on the machine it was built on - Apple M3 Max, macOS 26, Electron 43.4.1, 120 Hz display.

One minute at 3840×2160, this exact build, the glslsandbox default shader 7,191 frames at 120.0/s, 2 dropped, p99 9.9 ms, every painted frame transferred (3,591 of 3,591)

sha256 Sialk-beta-macOS.zip: 41c9f82328429ce6edd448d04177d5eb7ce4aeb3a80087d8a889efda24c0e691

0.2.0 - public beta · macOS, Apple Silicon · 5 September 2026

Sialk plays Three.js.

What changed

  • Three.js scenes are layers. A folder with a scene.js that exports a function: Sialk supplies three itself, the renderer and the loop, offline, and the room's audio reaches update() every frame. There was no canonical Three.js export, so Sialk defines one and freezes it with this release. See writing a Three.js scene.
  • A scene's controls come from a visual.json beside it, every type, and arrive on frame.parameters under their own names.
  • A Three.js page dropped on Sialk is told which shape it plays, instead of coming soon. Cables.gl, Rive and Spline are still coming, in that order.
  • The layer card names the kind: GLSL, P5, Three.js.
  • npx @sialk/agent knows the kind: a worked scene, a check for the mistakes every tutorial makes, and a Three.js section in the brief.

Measured on the machine it was built on - Apple M3 Max, macOS 26, Electron 43.4.1, 120 Hz display.

One minute at 3840×2160, this exact build, the bundled Three.js scene 7,182 frames at 119.7/s, 20 dropped in the first ten seconds, p99 10.0 ms, every painted frame transferred

sha256 Sialk-beta-macOS.zip: 725a1c7400a820900079afe2596baaf8e5067556c725ef8803657a9d470f8cfe

0.1.3 - public beta · macOS, Apple Silicon · 4 September 2026

The parameters are yours to play, and the first thing on screen is a visual.

What changed

  • Play a visual's parameters. Every control a visual declares is a fader, a switch, a colour or a trigger you can move, in this build. 0.1.2 showed them as a readout and kept the faders for v1; the library's visuals arrive with controls meant for the person who did not write them, so the readout stopped being the point.
  • One visual is already playing when Sialk opens, with its four controls beside it, instead of two example sketches.
  • The library. A LIBRARY door under the stack opens sialk.net/library: ready visuals, free, one zip each. Unzip, drop the folder on the window, and it is a layer with its own controls.
  • Controls for shaders. A visual.json beside a sketch.glsl declares number, boolean and colour controls in the shape the contract already takes; they arrive as uniforms under their own names. See writing a sketch with AI for the block.
  • Every empty state says where to start.

Measured on the machine it was built on - Apple M3 Max, macOS 26, Electron 43.4.1, 120 Hz display.

One minute at 3840×2160, this exact build, the first-run visual 7,199 frames at 120.0/s, 0 dropped, p99 10.6 ms

sha256 Sialk-beta-macOS.zip: d0e10bb32cf9ed11daae9766cea80cfb8f20acb5fa0225be4f128fadb347023b

0.1.2 - public beta · macOS, Apple Silicon · 31 August 2026

The cap is gone, and the stack learned to play video.

What changed

  • Nothing is capped any more. Output renders at the size you ask for, your screen's own, 4K included. The 1280 px limit in 0.1.1 is deleted, not raised: no tier and no build of Sialk degrades the picture. The only limit left is an 8K engineering ceiling.
  • Video clips as layers. Drop an .mp4 or .mov into the stack beside your sketches, it letterboxes, composites over and under your code, and declares Speed and Restart as parameters the music can drive. H.264, HEVC, VP9 and AV1 decode; HAP and ProRes do not.
  • The audio contract is 1.2, and the drums split from the notes. percussive and harmonic are the zero-setup answer to "react to the kick, not the pad", and this build fixes a fault 0.1.1 shipped: those two fields were analysed but never sent, so a sketch reading them saw 0.000. They arrive now. (stems and stemCount exist in the contract too and read zeros in this build, per-stem input arrives with v1.)
  • Your chosen audio input survives a restart. 0.1.1 reverted to the system default at every launch.
  • Add layer takes files, not only folders. The dialog now accepts a .glsl, a sketch.js, an HTML entry or a video clip directly, in 0.1.1 everything but HTML was greyed out. Found by testing this very release.

Measured on the machine it was built on - Apple M3 Max, macOS 26, Electron 43.4.1, 120 Hz display. Numbers from another machine are exactly what the beta is for.

One minute at 3840×2160, this exact build 7,181 frames at 119.6/s, 22 dropped, p99 9.6 ms

sha256 Sialk-beta-macOS.zip: b6ed86c5b0df50ae2001393949f2acd556a62172a18f0fbf259066e7eeb85de9

0.1.1 - public beta · macOS, Apple Silicon · 29 August 2026

The first build anyone else has run. Drop sketches in, stack them, mix them by hand, and watch their own parameters move, a sketch that reads the audio contract reacts to the music on its own.

What is in it

  • GLSL and p5 sketches. A folder with a sketch.glsl in it, or a folder with a sketch.js that declares setup() or draw(). Sialk writes the page and supplies p5 itself, so a sketch of one file runs offline on the first drop. Anything else is told, plainly, that it is not here yet, more kinds are on the way.
  • Layers. Added while the show is running, reordered by dragging the card, removed behind a confirm. Opacity, four blend modes, per-layer enable. Composited on the GPU.
  • Transparency. A layer that paints no background composites over what is beneath it.
  • The audio contract. window.sialk is present before your first line runs, in every layer, loudness, three bands, a spectrum, onsets, tempo and the phase of the beat.
  • Parameters, as a readout. Whatever a sketch declares, name and live value, so you can watch a sketch play itself. In this build they are meters rather than faders; playing them by hand arrives with v1, alongside the modulators they are the base for. A sketch's own control panel is kept out of the picture the audience sees.
  • One screen, and it is the wall. The picture in the window is the output, not a preview of it, there is one output in this build, so there is nothing it could differ from. Fullscreen puts it on a second display, or its own Space, and leaves the controls where they are.
  • Settings, on ⌘, - two panes, Output and Audio: size, frame rate, audio input, and which display fullscreen opens on. They describe the machine, not the show, and never travel inside a show file.
  • Show files. A whole mix, layers, values, placement, saved as a .sialk document with its own icon; double-click it, drop it on the window, or ⇧⌘O. ⇧⌘S saves it somewhere else. A sketch you have edited since is reported, not silently reverted; one that has moved keeps its place in the stack.
  • A run log, written every run, to ~/Documents/Sialk/logs/.

Not in the beta build, each with the version it arrives in:

  • Playing a sketch's parameters, in the beta the Inspector is a readout: name, live value, a meter. The faders arrive with v1.
  • Modulation, the + audio and + LFO stacks. v1.
  • Placing a layer, scale, position and rotation. v1.
  • Driving a sketch's own panel, lil-gui and dat.GUI knobs as Sialk parameters. v1. Panels are kept out of the output in every edition.
  • Layers from an address, pasting or dropping a URL. v1.
  • Building a source folder, a Vite or CRA tree with no node_modules. v1.
  • Playing the pointer - Pointer X/Y and Click as parameters. v1.
  • The build view, the four-column arrangement on V. v1.
  • Filtering the parameter list, the all / bound / moving pills. v2, with MIDI.
  • A separate output preview, a picture that can differ from the wall. v4.

Measured on the machine it was built on - Apple M3 Max, macOS 26, Electron 43.4.1. Numbers from another machine are exactly what the beta is for. The beta renders at most 1280 px on the long edge; the 1080p and 4K rows below are the engine on the uncapped development build, the ceiling the cap sits under, not what this build shows you.

The cap holding under 4K load asked for 3840×2160, rendered 1280×720 at 120/s, 0 dropped
Two minutes at 1920×1080/60 (dev build) 14,412 frames at 120.1/s, 0 dropped, p99 10.6 ms
Two minutes at 3840×2160/60 (dev build) 7,195 frames of 7,194 expected, all on the GPU, 0 bitmap fallbacks
Seven minutes, two layers (dev build) 50,389 frames at 119.97/s, 14 dropped, transfer ratio 0.997
Three layers and a second output window 120.1/s, 0 dropped
Two hours at 3840×2160/60 (dev build) 862,879 frames, 60.0/s delivered in every band, memory flat

Known, and named rather than discovered

  • Not signed or notarised. macOS will refuse it once. Move it to Applications and run xattr -dr com.apple.quarantine /Applications/Sialk.app - see the beta page for why both steps matter. Signing arrives with v1.
  • Apple Silicon only.
  • No MIDI, no cues, no remote. Those are v2, v3 and v5 on the roadmap.
  • No Windows build. Windows arrives at v3, once its GPU path has been measured on real hardware rather than assumed.

If it breaks, use the feedback page, it takes the run log from ~/Documents/Sialk/logs/. A sentence and a log is plenty.