Plugins
Pay only for what you import
Plugins live in plugins/, one directory each, and are compiled into a program only when it imports them. Native ones hold C/C++ code or a library; Zinc ones are written in Zinc. zinc plugins lists them for your project. Abbreviations: Pi = Raspberry Pi, rM = reMarkable Paper Pro, Web = WebAssembly.
44 modules
| Plugin | What it does | Code | Platforms |
|---|---|---|---|
zinc:3d | 3D: meshes, materials, lights, camera, scene graph; software or GPU | Native | macOS, Linux, Pi, ESP32, Web |
three | three.js API subset on `zinc:3d` (GLTFLoader, OrbitControls) | Native | macOS, Linux, Pi, Web |
zinc:canvas | HTML Canvas 2D-style context | Native | macOS, Linux, Pi, rM, Web, ESP32 |
zinc:svg | SVG rendered at run time | Native | macOS, Linux, Pi, Web |
zinc:lottie | Lottie animations, `<Lottie/> | Native | macOS, Linux, Pi, rM, Web, PS2, ESP32 |
zinc:map | Vector maps (Mapbox tiles, MapLibre styles) | Native | macOS, Linux, Pi |
zinc:mapping | GPU video mapping (warp, masks, blends) driven by OSC | Native | macOS, Pi |
zinc:video | Video: FFmpeg (VideoToolbox, V4L2), GStreamer and the hardware decoder on webOS | Native | macOS, Linux, Pi, webOS |
zinc:audio | Sounds and music (WAV, FLAC, MP3, Ogg) on miniaudio | Native | macOS, Linux |
zinc:midi | MIDI in and out (RtMidi) | Native | macOS, Linux |
zinc:osc/full | Open Sound Control over UDP | Zinc | macOS, Linux, Pi, rM |
zinc:physics2d | 2D physics (Box2D 3.1) | Native | macOS, Linux |
zinc:physics3d | 3D physics (Jolt 5.6) | Native | macOS, Linux |
zinc:gestures | Pan, pinch, rotate, tap | Zinc | macOS, Linux, Pi, Web, ESP32, PS2 |
zinc:ink | Handwriting: pressure, eraser, SVG/JSON export | Zinc | macOS, Linux, Pi, Web, rM |
zinc:sprite | Sprite animations from packed atlases | Zinc | macOS, Linux, Pi, Web, ESP32, PS2 |
zinc:tilemap | Tiled and LDtk levels | Zinc | macOS, Linux, Pi, Web, ESP32, PS2 |
zinc:pixelfont | 5x7 and 3x5 bitmap fonts for LED matrices | Zinc | macOS, Linux, Pi, ESP32, Web, PS2 |
zinc:loader | Loading screens (bar, splash, `<Loader>`) | Zinc | macOS, Linux, Pi, Web, ESP32, PS2 |
zinc:sqlite | SQLite 3.53 databases | Native | macOS, Linux, Pi, rM |
gsap | GSAP's core API in typed Zinc (tweens, timelines, eases, staggers), compiled by `zinc build`; the whole library runs on the QuickJS engine | Zinc | macOS, Linux, Windows, Pi, rM, webOS, Web, ESP32 |
zinc:async-storage | React Native's AsyncStorage on `zinc:storage | Zinc | macOS, Linux, Windows, Pi, rM, webOS, ESP32 |
zinc:socket | TCP, UDP and Unix sockets, DNS, WebSocket client and server | Native | macOS, Linux, Pi, rM |
zinc:webrtc | WebRTC (`RTCPeerConnection`): data channels, audio and video tracks (Opus, VP8, H.264 in hardware on macOS), stats, STUN/TURN (libdatachannel) | Native | macOS, Linux, Pi |
zinc:link | Two programs find each other (DNS-SD), pair once with a 6-digit code and talk over an encrypted channel (JSON and bytes, reconnecting): zinc agent's protocol | Native | macOS, Linux, Android |
zinc:process | Child processes (args, streams, kill) | Native | macOS, Linux, Pi |
zinc:ffi | C functions of shared libraries (libffi) | Native | macOS, Linux |
zinc:script | Sandboxed JavaScript at run time (QuickJS-ng) | Native | macOS, Linux, Pi, rM |
zinc:wasm | WebAssembly on wasm3 | Native | macOS, Linux, Pi, rM |
zinc:system | Desktop integration: notifications, menus, tray, dialogs, shortcuts, clipboard | Native | macOS, Linux |
zinc:webview | Embedded web views (WKWebView), Tauri-like messages | Native | macOS |
zinc:devtools | UI inspector for Chrome DevTools | Native | macOS, Linux, Pi |
zinc:serial | Serial ports (Arduino and other boards) | Native | macOS, Linux |
zinc:camera | Webcams and built-in cameras: frames as an image, snapshots, a fake camera (AVFoundation, V4L2) | Native | macOS, Linux, Pi |
zinc:microphone | Microphones: samples in blocks, a level meter, a fake microphone (miniaudio: Core Audio, ALSA) | Native | macOS, Linux, Pi |
zinc:gphoto2 | Camera remote control over USB (libgphoto2) | Native | macOS, Linux, Pi |
zinc:leapmotion | Ultraleap hand tracking (LeapC) | Native | macOS |
zinc:imu | QMI8658 motion sensor | Native | ESP32, macOS, Linux |
zinc:device | Board services: backlight, chip, heap | Native | ESP32, macOS, Linux |
zinc:remarkable | reMarkable status bar (clock, battery, exit) | Native | rM, macOS, Linux |
zinc:remote | View and drive a `display-remote` app | Native | macOS, Linux, Pi |
zinc:webos | webOS services (Luna bus through PDL), root helper, notifications | Native | macOS, Linux |
zinc:sonos | Sonos speakers (UPnP): rooms, groups, playback, volume, radios | Zinc | macOS, Linux, Pi, rM |
zinc:spotify | Spotify Web API: paged lists, search, playback | Zinc | macOS, Linux, Pi, rM |
9 display drivers
| Plugin | What it does | Platforms |
|---|---|---|
display-gl | GPU screen: OpenGL (SDL3) on macOS, KMS/EGL/GLES 2 on Pi and Linux, GLES 2 through Palm's SDL on webOS | macOS, Pi, Linux, webOS |
display-webos | First TouchPad driver: SDL 1.2, software frames, multitouch | Linux |
display-fbdev | Linux framebuffer (`/dev/fb0`) with keyboard, mouse and touch | Linux, Pi |
display-remote | Headless: streams frames over TCP to `zinc:remote` viewers | macOS, Linux, Pi |
display-rmpp | reMarkable Paper Pro e-ink, pen and touch | rM (emulated on macOS, Linux) |
display-st7789 | ST7789 and ILI9341 LCDs over SPI, CST820 touch | ESP32, macOS |
display-ssd1306 | SSD1306 OLEDs over I2C | ESP32, Pi, Linux, macOS |
display-ws2812 | WS2812 (NeoPixel) LED matrices | ESP32, Pi, Linux, macOS |
display-scrollphat | Pimoroni Scroll pHAT (11x5 LEDs) over I2C | Pi, Linux, macOS |
Plugin guides: docs.