Repository navigation
Multiplane 0.3.6
Faster 3D shots with motion blur and depth of field, a new fast quality preset, and fixes found while rendering a long production video.
npm install multiplane
npx playwright install chromiumChanged
- 3D shots with motion blur and depth of field are much faster. The bundled 3D layer no longer multiplies depth-of-field samples by motion samples. It first decides how many motion samples a frame needs, then splits the frame's depth-of-field budget across them (
max(2, ceil(budget / N))per capture, with the lens pattern rotated by sample time, so the blended frame still covers the whole aperture). The rotating lens pattern no longer counts as motion: whether to add samples is judged from extra captures with a fixed lens phase, so depth-of-field noise no longer pushes still or slow 3D frames to the sample limit. It also keeps the captures it has already made when samples double. On a 1080p 3D shot with depth of field, three frames went from 45.4 s to 19.7 s with the first of these changes, and the 3D part of that shot from 64 to 8 motion samples per frame with the second; splitting the depth-of-field budget took two 3-second sections of a production video from 88.6 s to 68.8 s and from 92.3 s to 61.5 s, with no visible increase in noise. - New
dofSamplesin results.render,stillsandverifyreportdofSamplesnext toblurSamples({ min, max, mean, histogram }): how many depth-of-field accumulations went into each delivered frame. standardstarts lower and stops earlier. Under--quality standard(the default), motion blur starts at no more than 4 samples (a shot'spost.motionBlurabove 4 starts at 4) and doubles up to 32 instead of 64. In a comparison against a 256-sample reference averaged in linear light, a fast typography frame has a mean error of 1.75 (99th percentile 5.7) under the new default. An explicit--motion-blurstill sets the start, and a limit no larger than the start keeps the shot's count fixed.- New
--quality fast. The same asstandardwith a limit of 16 samples: renders sooner, and very fast motion shows slightly more visible steps (mean error 2.11, 99th percentile 10.7 on the same frame). Use it when speed matters more than the last bit of quality;standardremains the default for final videos. - Fewer browsers for unmeasured 3D shots. Without a
multiplane benchmarkresult, shots that use WebGL or the 3D layer start at most 4 browsers (other shots: at most 12, as before). Many WebGL browsers share one graphics card and could slow down the whole computer. - 3D cards take
lodBias.layer.card({ ..., lodBias })(default 0, unchanged output) sharpens a card shown smaller than its texture; try-1for small text on a card facing the camera.
Fixed
- The desktop app no longer marks running renders as failed. A system query that timed out on a fully loaded machine was taken as "the render process exited unexpectedly". The app now uses a lightweight presence check; only a process confirmed gone is reported as exited.
- Progress moves during capture.
progress.done(anddoneinstatus.json) counts frames already captured, so heavy shots no longer sit at 0 for minutes. - The app's bundled command hands renders to the app. Renders started with
multiplane.cmd(Windows) or the bundled command on macOS were refused by the running app ("Rendering locally: Invalid hosted request.") and rendered in the terminal instead, so closing the terminal stopped them. The app now accepts requests from its own executable. - 3D layer: a layer-wide
textureBackgroundno longer fills transparent cards. It applies only to cards withannotationsorbrowserFrame; a card's ownstyle.textureBackgroundstill applies. - 3D layer: card borders no longer flicker against the image at long distances (for example a narrow field of view with the camera far away).
stills --draft --out <dir>no longer ends withinternal_errorafter capturing all stills.- No more
favicon.ico404 in render logs. The local server answers that path with 204 when the shot root has no icon.
Shots without motion blur and without the 3D layer render the same pixels as 0.3.3. Shots with motion blur use the new standard sample counts, and 3D shots with depth of field use the new split, so their output differs slightly from 0.3.3.
Installers
| System | File |
|---|---|
| Windows x64 | Multiplane-Setup-0.3.6-x64.exe |
| macOS, Apple silicon | Multiplane-0.3.6-arm64.dmg |
| macOS, Intel | Multiplane-0.3.6-x64.dmg |
On Windows, 0.3.2 and later update themselves from the About page (only the changed blocks are downloaded). If you are on 0.3.0 or 0.3.1, install this version by hand once. The Linux AppImage is not included yet. The installers are not code-signed: on Windows choose "More info", then "Run anyway" in SmartScreen; on macOS right-click the app and choose "Open" the first time.
SHA-256:
| File | SHA-256 |
|---|---|
Multiplane-0.3.6-arm64.dmg |
c67192e0a39e0040187b33d8393756ccc1318ce409c9ddd3b02097183c39a722 |
Multiplane-0.3.6-x64.dmg |
d753d5448b8f68f4a8e8e4b3941d45c4335850ce19e9730b8b9e6521dccfafb2 |
Multiplane-Setup-0.3.6-x64.exe |
c8872ff2aa5b0edbfde3c537f93d8158acb4ac76308f442bdac56df74fe577fa |
Verified
The full test suite and the desktop app tests pass on Windows; the everyday suite passes on macOS and Linux in CI. A packaged Windows build accepted a render from its bundled command, reconnected to it with multiplane wait after the terminal closed and delivered the video. Both macOS installers were installed, launched, used to render a real video and removed in CI.
Licence
Apache-2.0. Third-party notices are in THIRD_PARTY_NOTICES.md and inside each installer.