Stoatworks Labs

About

Inspirations and attributions

None of this was built from nothing. This page is everything in these projects that came from somebody else — the SDKs they are built on, the code we derived from other people's work, the projects we checked ourselves against, and the things they set out to be.

It is generated from the same file that writes the ATTRIBUTIONS.md in every repo, so the page and the repos cannot disagree. 53 of the 71 projects listed here have a public repo you can read; the rest are named without a link.

Code we derived from other people's work

Someone else solved this first. These projects would not exist in their current form without the work below, and in several cases the hard part — finding out what a device or a format actually does — was done by somebody else entirely.

  • network-audio-controller (netaudio-core)

    Chris Ritsen

    Unlicense

    Audinate's Dante ARC control protocol is undocumented. crates/discovery/src/dante_control.rs is a reimplementation rather than a port — no code was copied — but every constant, record layout and test in it is cross-checked against that crate's own known-answer unit tests. The wire format was documented and byte-tested there first, and guessing it from nothing would have been a different project.

    Used in Dante BabelBox

  • @node-projects/acad-ts

    MIT

    DWG is AutoCAD's native format and has no public specification — everything known about it is reverse-engineered. acad-ts does that parsing, and src/lib/import/dwg.ts is only the translation from its object model into ours. It was chosen over the more obvious libredwg specifically because libredwg is GPL-3 and bundling it into an MIT browser app would relicense the app. acad-ts is itself an independent TypeScript port of ACadSharp.

    Used in ArrayCAD

  • Four public-domain works, via Project Gutenberg

    public domain in the United States

    The built-in passages are body-only excerpts of Alice's Adventures in Wonderland (Lewis Carroll, 1865), The Republic Book VII (Plato, tr. Benjamin Jowett, 1871), Discourse on the Method Part IV (Rene Descartes, tr. John Veitch, 1850) and Hamlet Act III Scene I (Shakespeare, c. 1600). The Gutenberg header, footer and licence are deliberately never included, and the extractor asserts that no reference to them survives — so the files carry the public-domain work and nothing of Gutenberg's own added matter.

    Used in Downpour

  • blackmagic-misc

    Sylvain "tnt" Munaut

    Apache-2.0 (SPDX header in bmd.py; the repo has no LICENSE file, so GitHub does not detect it)

    The DaVinci Resolve Speed Editor stays silent until a mutual-authentication handshake completes. That handshake was reverse-engineered by Munaut, and both the authentication maths and the HID report layouts in console/src/lib/speedEditor.ts follow that reference. Our side of it is narrower — we only authenticate to the device and never verify it — but the work of finding out what the device wants is not ours.

    Used in OpenStage

  • 2D signed distance functions

    Inigo Quilez

    published derivations, used with credit

    The shape primitives are the standard analytic forms derived and published by Quilez. The normalisation constants, the motion, and everything else in the plugin are ours — but the distance functions at the centre of it are his derivations and are used as published.

    Used in Orrery

What they are built on

The SDKs, frameworks and libraries these projects bundle or link. Ordered by how many projects depend on them.

The full transitive dependency set for any build is pinned in that repo's lockfile, which is the authoritative list. What is named here is the layers a reader would actually want to know about, not every package that has ever been resolved.

Work we checked ourselves against

No code was taken from any of these. They are how we knew we had it right, which is worth saying out loud.

  • NanoOcp

    Christian Ahrens

    GPL-3.0

    AES70/OCA wire offsets and d&b object numbers were cross-checked against NanoOcp, alongside the public Crestron and Q-SYS integration modules. No code was taken and none could be — NanoOcp is GPL-3.0 and this is MIT. Facts about a wire protocol are not copyrightable, the implementation here is independent, and it stays MIT. Listed because checking your work against someone else's is worth saying out loud.

    db-remote

  • Analog Way LiveCore documentation and a vendor simulator

    The control protocol was recovered by reading Analog Way's own published documentation and validating against their simulator. No vendor code was used.

    openrcs

  • Shure Wireless Workbench and Sennheiser WSM file formats

    Both formats were worked out from files the tools themselves export. No vendor code was used, and neither vendor was involved.

    WSM–WWB Bridge

Inspirations

What these set out to be. No code, assets or binaries from any of them were used or examined — the debt is to the idea, and it is a real debt.

  • The arcade cabinet

    Five games in the spirit of the early-eighties arcade floor. None is a clone of a specific title and no original code, ROM or artwork was used — the games are written from scratch and the names are our own. What is borrowed is the form: one screen, one rule, no explanation.

    Coinop

  • The Windows 95 and 98 screensavers

    Microsoft

    Eleven savers rebuilt as a Resolume generator — the flat ones that shipped with Windows and the OpenGL ones that arrived with Plus! and became stock in 98. No Microsoft code, assets or binaries were used or examined; every saver is a fresh implementation written to match remembered behaviour. The debt is to the originals and to whoever at Microsoft decided a locked screen should be worth watching.

    Idler

  • Retro console video hardware

    The raster, the palette, the attribute cells and the ways they failed, recreated from published descriptions of how the hardware behaved. No ROM, no BIOS and no emulator code is present — the plugin generates the artefacts rather than running the machine that caused them.

    NESolume

  • Analogue television

    The composite signal path — subcarrier, comb filtering, the PAL delay line, shadow mask and halation — built from the published broadcast standards rather than from any existing implementation. The artefacts are consequences of modelling the signal path, not effects drawn to look like them.

    Old Cathode

  • Synthwave and the eighties arcade horizon

    The perspective grid, the striped sun and the neon tube are a visual language many people built, from Atari's vector cabinets to decades of synthwave cover art. No specific work is copied; the palettes and the path maths are ours.

    Outrun

Standards and published specifications

Not attribution so much as provenance: what these implementations are measured against, and why a reading from one of them should agree with your other kit.

  • LEQtion
    • IEC 61672 sound level meter specification — Weightings, time constants and the LEQ integration the meter implements.
  • atem-scopes
    • ITU-R BT.601, BT.709 and BT.2020 — Colourimetry and studio-range anchors for the scopes.
  • Contourtonist
    • ISO 226 equal-loudness contours — The contours the plugin tracks.
    • IEC 61672 frequency weightings — A- and C-weighting, implemented with matched-Z rather than bilinear so the high-frequency response stays inside tolerance.
  • simpleVIS
    • GDTF and MVR — The fixture and rig interchange formats read by the visualiser.
    • Art-Net and sACN (ANSI E1.31) — The control protocols it listens on.
  • Test Card
    • SMPTE RP 219 — Colour bar layout and colours.
    • ITU-R BT.709 — Luma coefficients and the Y'CbCr to RGB conversion the patterns are defined in.

By project

Every project with something to declare, and what it declares. Each public repo carries the same list as its own ATTRIBUTIONS.md.

ProjectBuilt onAlso
animATEMElectron, React, The npm ecosystem
ArrayCAD privateReact, The npm ecosystem@node-projects/acad-ts
AsciifyResolume FFGL SDK, GLEW — the OpenGL Extension Wrangler Library, libpng, OpenFX image effect plug-in API
Aspect Calc privateReact, The npm ecosystem
ATEM Fleet AdminElectron, React, The npm ecosystem
ATEM OverseerThe npm ecosystem
atem-scopesElectron, React, The npm ecosystemITU-R BT.601, BT.709 and BT.2020
av-launcherTauri, The npm ecosystem
Blend Calc privateReact, The npm ecosystem
cartridge privateResolume FFGL SDK, GLEW — the OpenGL Extension Wrangler Library, libpng, libretro API header
caspar-AVThe Rust crate ecosystem
CoinopResolume FFGL SDK, GLEW — the OpenGL Extension Wrangler Library, libpngThe arcade cabinet
Companion — animATEM@companion-module/base, The npm ecosystem
Companion — Atem Overseer@companion-module/base, The npm ecosystem
Companion — caspar-AV@companion-module/base, The npm ecosystem
Companion — flock@companion-module/base, The npm ecosystem
Companion — PDF Presenter@companion-module/base, The npm ecosystem
Companion — Presentation Commander Client@companion-module/base, The npm ecosystem
Companion — Presentation Commander Server@companion-module/base, The npm ecosystem
Companion — RFutils@companion-module/base, The npm ecosystem
Companion — SimpleCue@companion-module/base, The npm ecosystem
Companion — srt-router@companion-module/base, The npm ecosystem
Companion — WebLinked@companion-module/base, The npm ecosystem
Companion module: Kestrel@companion-module/base, The npm ecosystem
ContourtonistJUCE 8ISO 226 equal-loudness contours, IEC 61672 frequency weightings
Dante BabelBoxThe Rust crate ecosystemnetwork-audio-controller (netaudio-core)
db-remote privateThe Rust crate ecosystemNanoOcp
DownpourResolume FFGL SDK, GLEW — the OpenGL Extension Wrangler Library, libpng, OpenFX image effect plug-in API, stb_truetypeFour public-domain works, via Project Gutenberg
FlipbookResolume FFGL SDK, GLEW — the OpenGL Extension Wrangler Library, libpng, OpenFX image effect plug-in API, stb_truetype
FlockNDI SDK, The Rust crate ecosystem
IdlerResolume FFGL SDK, GLEW — the OpenGL Extension Wrangler Library, libpng, OpenFX image effect plug-in APIThe Windows 95 and 98 screensavers
KestrelNDI SDK, The Rust crate ecosystem
latex-wysiwyg privateThe npm ecosystem
LEQtionTauri, React, The npm ecosystemIEC 61672 sound level meter specification
MicWizardElectron, React, The npm ecosystem
MixerReturnJUCE 8
NESolumeResolume FFGL SDK, GLEW — the OpenGL Extension Wrangler Library, libpng, OpenFX image effect plug-in APIRetro console video hardware
nib privateResolume FFGL SDK, GLEW — the OpenGL Extension Wrangler Library, libpng
Old CathodeResolume FFGL SDK, GLEW — the OpenGL Extension Wrangler Library, libpng, OpenFX image effect plug-in APIAnalogue television
openrcsThe Rust crate ecosystemAnalog Way LiveCore documentation and a vendor simulator
openrcs-research privateThe Rust crate ecosystem
OpenStage privateNDI SDK, The Rust crate ecosystemblackmagic-misc
OrreryResolume FFGL SDK, GLEW — the OpenGL Extension Wrangler Library, libpng, OpenFX image effect plug-in API2D signed distance functions
OutrunResolume FFGL SDK, GLEW — the OpenGL Extension Wrangler Library, libpngSynthwave and the eighties arcade horizon
oxbowResolume FFGL SDK, GLEW — the OpenGL Extension Wrangler Library, libpng, NDI SDK, Open Media Transport (libomt)
PDF PresenterElectron, React, The npm ecosystem
PineMarten privateNDI SDK, Open Media Transport (libomt), The Rust crate ecosystem
Pixel Peeker privateReact, The npm ecosystem
PortholeResolume FFGL SDK, GLEW — the OpenGL Extension Wrangler Library, libpng, OpenFX image effect plug-in API
pptx-font-manager privateTauri, React, The npm ecosystem
Presentation Commander — ClientElectron, React, The npm ecosystem
Presentation Commander — ServerNDI SDK, Electron, React, The npm ecosystem
Presentation ConverterThe npm ecosystem
Resolume Luma KeyerResolume FFGL SDK, GLEW — the OpenGL Extension Wrangler Library, libpng, OpenFX image effect plug-in API
Resolume OFX BridgeResolume FFGL SDK, GLEW — the OpenGL Extension Wrangler Library, libpng, OpenFX image effect plug-in API
RFutilsThe npm ecosystem
ScopesResolume FFGL SDK, GLEW — the OpenGL Extension Wrangler Library, libpng
SimpleCueJUCE 8
simpleRTA privateReact, The npm ecosystem
simpleVISTauri, The npm ecosystemGDTF and MVR, Art-Net and sACN (ANSI E1.31)
SRT RouterNDI SDK, Open Media Transport (libomt), The Rust crate ecosystem
stagewash privateReact, The npm ecosystem
Test Card privateReact, The npm ecosystemSMPTE RP 219, ITU-R BT.709
the Stoatworks Labs website privateAstro, The npm ecosystem
thumbnail-generator privateReact, The npm ecosystem
TinselResolume FFGL SDK, GLEW — the OpenGL Extension Wrangler Library, libpng, OpenFX image effect plug-in API
UnMapperNDI SDK, The Rust crate ecosystem
vertige-bridge privateThe Rust crate ecosystem
WebLinkedResolume FFGL SDK, GLEW — the OpenGL Extension Wrangler Library, libpng, Chromium Embedded Framework, Spout, Syphon Framework, miniaudio, NDI SDK, Open Media Transport (libomt)
WSM–WWB BridgeShure Wireless Workbench and Sennheiser WSM file formats
Zero EQJUCE 8

If this page has your work wrong

If something here is yours and the description is inaccurate, the licence is wrong, or you would simply rather not be listed — tell usor open an issue on the repo in question, and it will be fixed. That is not a formality; getting somebody else's credit wrong is worse than not crediting them at all.

See also: the infrastructure that makes this possible and the MIT licence in full.