Not3d · Beta guide

Enter the access password to continue.

Need access? Register interest

Not3d guide

Everything you need to wire Not3d into your rig, capture notes during a show, and ship them onward. Designed to be skimmable — jump to the part of the workflow you're on.

For iOS 17+ · iPadOS 17+ · macOS 14+ Watch watchOS companion

Quick start #

Five minutes from cold-open to your first timecode-stamped note.

  1. Install on your iPad (or iPhone, or Apple Silicon Mac).
  2. Launch. The Show Picker appears — tap New Show, name it, pick an accent colour. (Or just open the default My Show.)
  3. Pick a timecode source. Open Settings Timecode and turn it on. Choose OSC, Art-Net, LTC (Audio), or Time of Day. See the timecode sections below for details.
  4. Time of Day, or LTC (Audio). See OSC / Art-Net / LTC below for details.
  5. Connect. The status pill on the Live View should turn green and show running timecode within a few seconds.
  6. Take a note. Tap anywhere on the Live View to start a text note. Long-press to start a drawing instead. The cue and timecode are frozen at the instant you tap.
i

Run the simulator to test. No console handy? Settings Debug Timecode Simulator generates fake timecode so you can exercise the rest of the app on the train.

Shows & notebooks #

Shows

Every project lives inside a Show — a self-contained container with its own notebooks, notes, tags, templates, smart notebooks and settings. One Not3d install can hold any number of shows; switching between them is instant.

  • Create, rename, duplicate and delete from the Show Picker.
  • Each show has a name, icon and accent colour.
  • The Show Picker appears on every launch. To skip it, enable Settings Current Show Load Last Show on Launch.
  • The active show's name appears in the Live View status overlay.

Notebooks

Within a show, notes live in Notebooks. Use one per act, one per run, one per cast member — whatever fits the show.

  • One active notebook at a time.
  • Notes created in the Live View land in the active notebook.
  • Switch notebook via the notebook picker at the top of the Notes list.

The Live View #

The Live View is where Not3d earns its keep during a show. Big readable timecode, the current cue, status pills along the top, and one giant tap target underneath.

Screenshot — Live View Coming soon

What you see

  • Status overlay — active show, device IP, timecode source, video source, and connected collaboration peers.
  • Centre — current cue name and running timecode, large enough to read from a tech desk.
  • Tap area — anywhere on the screen.

Long cue names stay readable — the cue card caps at a sensible width and the text shrinks to one line so it never runs behind the status overlay when multiple peers are connected.

Capturing a note

  • Tap anywhere to start a text note.
  • Long-press to start a drawing note with the current video frame as an underlay.
  • The cue and timecode are frozen the instant you touch — keep typing and the timestamp stays exact.

Notes & drawings #

Text notes

  • Quick text entry, full-text search across cue, timecode and content.
  • Optional template prefixes (see Templates).

Drawing notes

  • Freehand sketching canvas.
  • Optionally use the current NDI or USB-capture frame as an underlay.
  • On save, the ink is flattened over the video frame so the exported image always matches what you saw.
  • Re-editable after creation — tap the pencil icon on a drawing note to reopen it in PencilKit. Add new strokes, erase, or rework existing ones. Edits broadcast to your collaboration peers so the next person picks up where the last one left off.
  • Cross-device safe — strokes are stored alongside the flattened image with the original canvas size, so a drawing made on iPad opens and edits correctly on iPhone or Mac (and back) without accumulating shrinkage.
  • Saved PNGs use transparent alpha around the drawing rather than baking in a grey backdrop, so the viewer's own background — including Theatre Mode black — shows through.

Image zoom

Tap any image inside a note — snapshot or drawing — to open it full-screen. Pinch to zoom up to 6×, drag to pan, double-tap to reset, X to close.

Video snapshots

Any note can carry a snapshot of the current video source — NDI, USB capture, the device camera, or a peer's shared camera. Only one source is active per show; pick it under Settings Video Input.

Editing notes

A note's text, tag, cue, and timecode are all editable after the fact. Live shows are messy — sometimes you tag the wrong thing, or your finger slips on the wrong cue. Notes shouldn't be precious.

  • Open a note's detail view, tap the pencil icon — or double-tap the cue/timecode area to jump straight into editing.
  • Drawings can be reopened and amended in PencilKit (see Drawing notes above).
  • Timecode entry is digit-only and auto-formats: type 10000203 and it becomes 10:00:02:03.
  • Edits broadcast live to everyone in a collaboration session, so the rest of the team sees corrections immediately.

Actioning & deleting

  • Tap the tick on a note to mark it actioned. Actioned notes sink to the bottom of the list automatically.
  • Swipe a note in the list to delete (or use multi-select for batch operations).

Theatre Mode #

For use in blacked-out venues. Turns the app into something that won't act as a lighthouse pointed at the audience when you check your notes mid-show.

What it does

  • Every page background goes pure black — zero pixel emission on OLED screens.
  • Cards and surfaces (note rows, comment bubbles, input fields, tag chips) drop to black, with a slim outline in your chosen colour so each region stays readable.
  • The big cue and timecode on the Live tab use your chosen theatre colour — defaults to dark red, which preserves dark-adapted night vision.
  • Drawing canvas goes black too, so coloured PencilKit strokes read like chalk on a chalkboard.
  • Status info (timecode live / no signal, collab peers, etc.) stays visible via the top-left status overlay.

Setup

  1. Open Settings Appearance Theatre Mode.
  2. Toggle it on.
  3. Pick a colour — four presets (Red / Amber / Green / Dim) or a custom colour picker with live preview.

The toggle is independent of the chosen colour, so you can flip between rehearsal and show presentation without re-picking each time.

i

Red is the safe default. Long-wavelength light has the least impact on rod cells, so your night vision stays intact when you look up from the iPad. Amber and green are softer fallbacks if red feels too intense.

Button colours

Also in Settings Appearance: custom colour pickers for the Text Note and Drawing Note buttons on the Live tab, each with a Reset link. Handy for colour-coding by operator, or just matching the rest of your kit.


OSC input #

Open Sound Control over UDP. The most flexible source — works with anything that can fire an OSC message.

Defaults

SettingDefaultWhat it does
Port8000UDP port Not3d listens on for incoming messages.
Cue address/d3/showcontrol/currentsectionnameAddress pattern for cue-name updates.
Timecode address/d3/showcontrol/timecodepositionAddress pattern for timecode updates.
Note trigger/not3d/note/createSend a string to this address to create a note from outside the app.
Cue string selectionFirstIf the OSC message has multiple string args, which one to use as the cue label.

Address patterns

  • Supports prefix wildcards — /d3/*.
  • Supports suffix wildcards — */timecode.
  • OSC bundles are unwrapped automatically.
  • Parsing is deliberately lenient so a slightly malformed message from a third-party tool doesn't drop the whole bundle.

Triggering a note via OSC

Send a string argument to your Note Trigger address and Not3d creates a note with that string as its body, stamped with the current cue and timecode.

SendOSC 1 "/not3d/note/create,s,Reverb tail too long on this cue"

Reliability

OSC listeners have a long, sad history of dying quietly in the middle of long shows. Not3d's is designed to survive the usual culprits:

  • Holds an App Nap activity token on macOS, so the receive thread keeps running during long passive sessions.
  • Watches network paths with NWPathMonitor and auto-rebinds the socket when Wi-Fi roams, a VPN connects/disconnects, or the active interface changes.
  • Defensively restarts on app foreground in case iOS reaped the UDP socket while the app was suspended.
  • A prominent red warning banner appears on the Live tab if the listener errors out, disconnects, or goes 30+ seconds quiet while timecode-via-OSC is enabled — with a one-tap Restart button right on the banner.

grandMA3 plugins

The repo ships three importable MA3 plugins in grandma3/:

  • Start OSC / Stop OSC — watch the assigned executor and fire cue + sequence names to Not3d when the cue changes.
  • Make Note — pops up a text-input dialog on the desk. Type, hit enter, and the text fires straight to Not3d's note-trigger address.

Import via MA3 Pools Plugin right-click Import. Set the destination IP and port in MA3 Menu Network OSC to match your iPad's IP and port 8000.

If you change the Cue Address in Not3d, make sure OSC_ADDRESS in the MA3 plugin matches it.

Art-Net Timecode #

Standard Art-Net Timecode over UDP. Works out of the box with most lighting consoles and media servers that already speak Art-Net on the network.

Port
6454 (Art-Net standard)
Frame rates
24 / 25 / 29.97 / 30 fps — auto-detected

Setup

  1. Open Settings Timecode and pick Art-Net.
  2. Configure your source to broadcast Art-Net Timecode to your iPad's IP, or to the network broadcast address.
  3. Not3d binds to all interfaces, so as long as the broadcast reaches the device, it'll catch it.

Drop-frame is auto-detected for 29.97 fps.

Network interface

If your iPad is multi-homed (e.g. on both a show-network and Wi-Fi), pin Not3d to the right interface from Settings Network. The chosen interface is used for both Art-Net and OSC.

LTC over USB-C audio #

SMPTE/EBU Linear Timecode decoded from any class-compliant USB-C audio interface. The lingua franca of show timecode — if your rig can output an audio signal, Not3d can read it.

What works

  • disguise (d3) — audio output, routed to the interface.
  • QLab — audio output via a DCA / aux send.
  • grandMA3 — via OSC bridge, or an external LTC generator.
  • Hardware sync boxes — Tentacle Sync, Ambient Lockit, Mozegear Tig.
  • USB-C audio interfaces — Focusrite, Apogee, MOTU, RME, even a cheap USB-C → 3.5 mm adapter.

Setup

  1. Plug a USB-C audio interface into your iPad.
  2. Route LTC from your source into the interface's line or mic input.
  3. In Not3d, open Settings Timecode, enable timecode, and pick LTC (Audio).
  4. Pick the input device from the dropdown. (Auto-selected if there's only one.)
  5. The status pill on the Live View turns green and shows decoded timecode like HH:MM:SS:FF (25 fps).

Frame rate

Auto-detected from bit timing: 24 / 25 / 29.97 / 30 fps. No need to configure.

Signal loss

If the LTC signal drops, the status pill turns red within the configured timeout. As soon as signal returns, the decoder re-syncs.

!

Permission: the LTC decoder uses the audio input pipeline, which requires microphone permission. The first time you select LTC, iOS will prompt for permission — say yes.

Time of Day #

No external timecode source? Not3d can use the device's own system clock. Notes get wall-clock HH:MM:SS:FF stamps based on the iPad's current time.

When to use it

  • Ad-hoc rehearsals where nothing is sending timecode.
  • Working from playback or watching back a recording.
  • Transcribing notes outside the live run — e.g. director's notes after the show.
  • A quick sanity check that the app is working before plugging into the rig.

Setup

  1. Open Settings Timecode, enable timecode, and pick Time of Day.
  2. That's it. The Live View immediately starts showing the system clock.

NDI video #

Receive NDI video streams over the network for snapshots and drawing underlays. Best when your video runs on a separate machine on the same network.

All four video backends — NDI, USB capture, device camera, shared camera — live behind one Enable Video Input toggle and a source picker in Settings Video Input. Only one source is active at a time.

Setup

  1. Open Settings NDI and enable the NDI receiver.
  2. Tap Scan for sources — Not3d discovers sources on the network for 10 seconds.
  3. Pick a source from the list. Live preview appears.
  4. (Optional) Toggle Capture snapshot with note if you want every note to grab a frame.

Advanced

  • Extra source IPs — for cross-subnet discovery, add the source machine's IP.
  • Groups — to filter discovery to specific NDI groups.
  • Discovery server — point at an NDI Discovery Server for large installs.
  • Omit snapshot when underlay used — saves storage when you draw on every snapshot anyway.

USB capture #

UVC-compliant USB capture cards — typically a cheap HDMI-to-USB dongle. No network needed, near-zero latency. Requires iPadOS 17+ (external camera support).

Setup

  1. Plug your HDMI source into the dongle, then the dongle into your iPad.
  2. Open Settings USB Capture and enable the pipeline.
  3. Pick the device from the list (most dongles show as "USB Video" or similar).
  4. Pick a format — resolution, frame rate, pixel format.
  5. Live preview appears in the USB Capture screen.

Notes

  • Snapshots are rendered on-demand from the most recent frame, so they're frame-accurate.
  • Mirror correction is applied automatically — output matches the source 1:1.
  • The USB capture view enforces landscape orientation while it's on screen, because most dongles only emit one orientation. The rest of the app rotates freely.
  • Works on Apple Silicon Macs in "Designed for iPad" mode.
  • Use the Rescan button after hot-swapping a device.

Device camera #

Use the iPhone or iPad's own built-in camera as a snapshot source — for the things that never make it into the rendered video feed: the lobby, an audience reaction, an off-stage problem, a wide of the venue.

Setup

  1. Open Settings Video Input, enable video, and pick Camera.
  2. Choose front, back, or an external camera.
  3. Live preview appears; create notes as usual to capture frames.

Notes

  • Snapshots render on-demand from the most recent frame — current to within a frame or two, no stale-frame buildup.
  • Frames are upright on every device — rotation follows the capture connection (with a fixed angle on Apple Silicon Macs, where the built-in / Continuity camera reports no usable horizon).
  • Front-camera snapshots are mirrored to match the selfie preview you saw.
  • Camera discovery runs off the main thread, so selecting a camera never freezes the UI while the system probes.

Shared camera #

Turn one device into the camera for the whole team — point an iPhone at the stage (or a screen) and every device in the collaboration session can grab snapshots from that one feed. Useful when only one person has line of sight, or when you want a consistent reference frame across all note-takers.

Setup

  1. Be in a collaboration session with the other devices.
  2. On the device with the view, enable Share My Camera With This Session in Settings Video Input.
  3. On the other devices, open Settings Video Input and pick whose camera to view.

How it behaves

  • A ~1 fps preview heartbeat keeps every viewer's frame fresh without flooding the network (unicast fan-out through the host, not multicast).
  • Creating a note fetches a fresh on-demand frame from the broadcaster and races a short timeout, so the captured frame lines up with the note's timecode rather than lagging the heartbeat.
  • A feed that goes away — peer disconnects, app backgrounds, sharing toggled off, or the network stalls — is dropped within a few seconds, so a stale last frame is never stamped onto a note or left sitting in the picker.

Tags #

Colour-coded labels for routing notes to departments. Six are built-in — add as many as you want.

Default tagColour
ContentBlue
LightingYellow
AudioGreen
VideoPurple
StageOrange
BlockingRed

Multi-tag per note

A single note can carry any number of tags. Useful when a note belongs to more than one department — e.g. an LX note that the sound op also needs to see, or a stage note that's really a video note in disguise.

  • In the tag picker, tap chips to toggle them on or off. There's no limit — add as many as fit.
  • The first tag applied is treated as the primary. It drives the left-edge colour bar on the note row and the position in tag-sorted lists.
  • Old single-tag notes carry over unchanged — they read as one-tag notes, no migration required.
  • Tag-based sorting uses the primary tag, so list ordering stays predictable.

Multi-tag everywhere else

  • Smart notebooks — a “has tag X” rule matches notes where X is any of their tags. A multi-tagged note shows up in every relevant smart notebook simultaneously.
  • Collaboration — multi-tag broadcasts include every tag's full definition (name + colour), so a peer auto-creates any tag it hasn't seen before. No more “why doesn't this tag exist on my iPad?”
  • Airtable — writes a comma-separated list of tag names into the tag column.
  • Trello — posts the note as a separate card into every matching tag-named list. One note with three tags becomes three cards, one per list — each tag's department sees what's theirs without having to filter.
  • Webhooks — the JSON payload now includes tagNames and tagIDs arrays. The legacy single tag / tagID fields still go out (set to the primary tag) for backward compatibility — existing integrations don't break.
  • Manage tags in Settings Tags.
  • Sort the Notes list by tag (Tag Name sort mode) — tagged notes group together, untagged notes sink to the bottom.
  • Tags sync across collaboration devices by name, so no duplicate tags appear when devices reconnect.

Smart notebooks #

Rule-based filtered views across every notebook in the show. Like Smart Albums in Photos, but for show notes.

Rule types

  • Tag is / is not — filter by tag.
  • Cue contains — text match on cue name.
  • Text contains — full-text match on note body.
  • Actioned — show only done / only outstanding notes.
  • Date — created before / after / between.

Combining

Match all (AND) or match any (OR). "All my outstanding Lighting notes from tonight" is two rules: tag = Lighting + actioned = false, match all.

Finding notes #

Two fast ways to cut a long list down to what matters right now — without opening a menu or building a smart notebook.

Quick filter chips

A row of one-tap chips sits above the notes list. Tap to narrow what's shown; tap again to clear.

  • Active and Done — split by completion state.
  • Assigned to me — appears in a collaboration session; shows only the notes someone has handed you (see Assigning notes).
  • One chip per tag, in the tag's own colour — isolate a single department instantly.

Chips stack with whatever sort and search you've already got going.

Group by Day

A sort option that breaks the list into collapsible day sections with relative headers — Today, Yesterday, then the date. Tap a header to fold a day away. Handy across a multi-night run, or when you want last night's notes out of the way without deleting them.

Templates #

Quick-start scaffolds for common note types. Tap a template instead of starting from blank — the note begins with a prefix and optionally pre-tags itself.

TemplatePrefixTag
Quick Note
Content NoteContent
Lighting CueLX: Lighting
Audio IssueAUDIO: Audio
Video NoteVIDEO: Video
Stage NoteSTAGE: Stage
BlockingBLOCKING: Blocking
ReminderREMINDER: 

Create custom templates in Settings Templates with your own name, icon, colour, prefix and auto-tag — 22 icons available.


disguise (d3) integration #

Control the disguise media server timeline directly from your notes. Tap a note → d3 jumps to that timecode.

Setup

  1. In d3Manager, enable the HTTP API.
  2. In Not3d, open Settings d3 API and enter the d3 machine's IP and port (default 80).
  3. Enable Go to Timecode on Note Select.

What happens when you tap a note

  1. Not3d hits GET /api/session/transport/activetransport to find the active transport's uid.
  2. Sends POST /api/session/transport/gototimecode with the note's timecode and the transport uid.
  3. d3 jumps to that position.

Manual vs. automatic

With Go to Timecode on Note Select on, every note you tap jumps the d3 transport — great during the build, dangerous during a live run.

Turn the toggle off and note selection no longer touches d3, but each note's detail view gains a “Go to Timecode in d3” button. You can keep the d3 connection live all show without a misplaced tap throwing the timeline.

i

Best practice: leave the auto-toggle on during tech / rehearsal, flip it off for the live run, and use the per-note button when you need to jump deliberately.

OSC output & webhooks #

Fire events when notes are created, toggled or selected. Use this to drive lighting consoles, automation systems, dashboards, anything that speaks OSC or HTTP.

OSC output defaults

SettingDefault
Host127.0.0.1
Port9002
Created address/not3d/note/created
Toggled address/not3d/note/toggled
Selected address/not3d/note/selected
Batch address/not3d/notes/batch

Created / Toggled message

Arguments in order: note ID, cue, timecode, kind (text or drawing), actioned (0 / 1), optional note text.

Selected message

Arguments: timecode, cue name. Sent when you tap a note in the list.

Batch send

In the Notes list, tap Select Notes, tick the notes you want, then tap Send. All selected notes go out in one message to /not3d/notes/batch — and the same payload fires to the webhook in parallel.

Webhooks

POST events to any URL, with an optional bearer token. JSON payload:

{
  "event": "note.created",
  "note": {
    "id": "uuid",
    "cue": "Scene 5",
    "timecode": "01:23:45:12",
    "kind": "text",
    "isActioned": false,
    "createdAt": "2026-05-14T20:34:56.789Z",
    "text": "Wash 4 hot on entrance"
  },
  "notebook": { "id": "uuid", "name": "Act 1" }
}

Event types: note.created, note.toggled, notes.batch.

Automatic sending

By default notes only leave when you multi-select and tap Send via Webhook. Two toggles in Settings Webhook make it automatic:

  • Auto-send New Notes — fire note.created the moment a note is made.
  • Auto-send Completion Changes — fire note.toggled whenever a note's done state flips.

Payloads carry both the tagNames / tagIDs arrays and the legacy single-tag fields, so existing integrations keep working.

i

Privacy: if you don't want note text leaving the device, turn off Include Note Text in Events in OSC Out and Webhook settings.

Trello #

Push notes to a Trello board. Each tag becomes its own Trello list, so a Lighting note lands in the "Lighting" list.

Setup

  1. Get your API Key and Token from trello.com/app-key.
  2. Get your Board ID — open the board, copy the segment after /b/ in the URL.
  3. (Optional) Get a Default List ID for untagged notes — open any card in that list, append .json to the URL, find idList.
  4. In Not3d, open Settings Trello, toggle on, paste credentials.
  5. Tap Test Connection.
  6. Either enable Auto-export new notes, or use Export Current Notebook for a manual batch.

Card format

  • Title — first 100 characters of the note text (or "[Tag] Cue @ TC (Drawing)" for drawings).
  • Description — cue, timecode, tag, full text, creation timestamp.

Multi-tag notes

If a note has more than one tag, Not3d posts it as a separate card into every matching tag-named list — one card per tag. Each department sees the notes that concern them without having to filter.

Duplicate detection

Not3d remembers which notes have been exported. Re-running an export skips notes that are already in Trello. If you genuinely want to re-create cards, hit Clear Export History.

!

"Exported 0 cards"? Almost always means your notes have no tags and you haven't set a Default List ID. Either tag the notes or set a default list.

Airtable #

Setup

  1. Create a Personal Access Token at airtable.com/create/tokens with read/write scope on the base.
  2. Find your Base ID and Table ID from the Airtable API docs page for your base.
  3. In Not3d, open Settings Airtable, paste credentials, tap Test Connection.
  4. Either enable Auto-export, or use Export Current Notebook.

Fields are mapped automatically — make sure your Airtable table has columns for cue, timecode, tag and note text.


Apple Watch #

The Watch companion is for the fastest possible note capture — when you can't reach the iPad without taking your eyes off the stage.

What it does

  • Shows the current cue and timecode live.
  • Drop a stamped note with one tap, optionally picking a tag.
  • Browse the last 10 notes on the wrist.
  • Haptic confirmation on note creation.
  • Connection status indicator if the iPhone/iPad pairing drops.

Setup

  1. Install Not3d on your iPhone (the Watch app rides on the iPhone pairing, not the iPad).
  2. The Watch app installs automatically via the Watch app on iPhone.
  3. Open the Watch app on your wrist — it'll pair with the iPhone instance and start mirroring cue/timecode.

Notes sync bidirectionally between Watch and iPhone, so anything captured on the wrist appears in the main app.

Lock Screen Live Activity #

When a show is loaded, the current cue and timecode appear on the Lock Screen — and, on iPhone 14 Pro and later, in the Dynamic Island. Glance at the show without unlocking.

What it shows

  • Current cue (updates immediately) and timecode (ticks about once a second).
  • Timecode reads green when a signal is live, grey when it's gone quiet.
  • The show name, and in a collaboration session, the connected peer count plus an OSC-warning flag.
  • iPad shows the Lock Screen layout (no Dynamic Island).

Turn it on

Toggle Settings Timecode Lock Screen Cue + Timecode — shown only when timecode is enabled. It runs only while a show is open.

A locked iPhone suspends the app, so the activity — and any live collaboration — pauses until you unlock. That's an iOS constraint, not a Not3d setting.

iCloud & collaboration #

iCloud sync

iCloud sync now operates on a whole show at a time — notebooks, notes, tags, templates, smart notebooks and settings, all together. Controls live in the Show Picker, not in Settings.

Push
Upload a show to iCloud.
Restore
Pull a show down from iCloud onto this device.

Push a show

  1. Open the Show Picker (the picker on launch, or Settings Current Show Switch).
  2. Long-press (or right-click) a show and choose Push to iCloud.
  3. Decide whether to include video snapshots — off by default, since snapshots can be big. Tick if you want everything; leave off for a fast, light sync.
  4. Confirm. The push runs in the background.

Restore a show

  1. In the Show Picker, tap Restore from iCloud.
  2. The cloud browser lists every show you've pushed (across all your devices).
  3. Pick a show, then choose with or without snapshots.
  4. Confirm. The show appears in the Show Picker; if it's the currently-active show, it reloads live.

How it's stored

Each show in iCloud is three files in Documents/Shows/ inside the app's iCloud container (iCloud.com.samlisher.not3d):

  • Header — tiny metadata file so the browser can list shows without downloading the whole thing.
  • Archive — the full show: notebooks, notes, tags, templates, smart notebooks, settings.
  • Snapshot bundle — optional, only created when you push with snapshots ticked.

All reads and writes are coordinated with NSFileCoordinator, so two devices touching the same show at the same time won't trample each other. Both devices must be signed into the same iCloud account with iCloud Drive on.

For your devices, not for sharing. iCloud sync keeps your own iPad / iPhone / Mac in step. To share a show with someone else, use Collaboration (or send them the file via AirDrop).

Settings that don't travel. When you restore a show, Not3d deliberately doesn't restore device-bound settings — selected NDI source, USB capture device, LTC audio input — so the show plays nicely on whatever rig is in front of you.

!

Old iCloud data is not migrated. The previous iCloud format (container iCloud.0.2, notebooks-level push/pull/merge) is abandoned. If you had shows in the old format you care about, open them in the app, then push them again with the new flow.

Real-time collaboration

For multi-device sessions during a show — director + programmer + stage manager all on the same notebook, watching new notes appear in real time.

  • One device hosts, others join.
  • Peer discovery is automatic via Bonjour (_not3d._tcp).
  • Notes, tags, and notebooks sync between connected devices.
  • Each note records "Made by" with the creator's device name.
  • Cue and timecode edits broadcast live too — fix a typo on one device and the rest of the team sees it instantly.
  • The peer display adapts to the screen — iPhone shows a compact one-line count ("2 peers connected") so it never crowds the cue, while iPad and Mac list the connected peers by name.

Joining from the Show Picker

The fastest path onto a teammate's session — you don't even need to have the show first.

  • Anyone on the local network who's hosting appears in the Show Picker as a Live Session tile.
  • Each tile shows the host's active show name (advertised via a Bonjour TXT record at discovery time) and the host device's name underneath — so you know what you're about to join before you tap.
  • Tap a tile to request to join. You don't need to be in a show already, and you don't need their show on your device.
  • The host approves the request and their whole show — notebooks, notes, tags, settings — is sent to your device, then the session begins.
  • If you rejoin a session you've joined before, Not3d reuses the existing show rather than creating a duplicate.

Resilience

  • Clients reconnect on their own after the app is backgrounded or the device is locked.
  • A heartbeat detects peers that have dropped off, even when no notes are flowing.
  • Transient drop-outs recover without a manual toggle — no need to stop and re-host.
  • On Mac, sessions stay connected when you switch to another app.
  • A Cancel control is available if a reconnect ever stalls.
  • Note images (drawings + video snapshots) transfer reliably. If a transfer is interrupted, the missing pieces are flagged in-app and re-sent on reconnect rather than failing silently.

Known collaborators & reconnecting

The host doesn't have to re-approve the same people every show.

  • Once the host approves a device, it's remembered — it rejoins automatically on future connects without re-prompting.
  • The host's Known Collaborators list (Settings Collaboration) is the source of truth. Forget one device or forget all of them; a forgotten device must be re-approved before it can rejoin, even on the same show.
  • Reconnects are lightweight — a device that already has the show isn't re-sent the whole show and image library, only what it's actually missing.

Assigning notes

Hand a note to a specific person in the session.

  • From a note's detail view, tap Assign… and pick someone in the session.
  • They get a toast ("X assigned you …") and the note shows “Assigned to …” with a badge in the list row.
  • Filter to Assigned to me with one tap (see quick filter chips).
  • Assignments broadcast live and survive reconnects.

Offline changes

Notes you create and tag edits you make while disconnected aren't lost. On rejoin, Not3d offers to push your offline notes and tag changes to the session in a single prompt. On a full re-sync the host's copy wins, but your divergent offline tag edits are preserved and offered for push rather than silently overwritten.

Show-gated sessions

When a client joins, the host and client exchange show names. If they match, the client joins immediately. If they're different, the host gets two options:

  • Send Show — the host's full show data is pushed to the client as a new show, then collaboration begins.
  • Decline — the client is notified and disconnected.

Setup

  1. Open Settings Collaboration on each device.
  2. Set a Display Name (so notes show who wrote them).
  3. One device taps Host Session.
  4. Other devices tap Join Session and pick the host from the discovered list.
!

Network requirements: all devices must be on the same local network and have Local Network permission granted to Not3d. Hotel and venue networks sometimes block Bonjour — if discovery fails, check that first.


Export #

PDF

Production-grade notes pack — cue, timecode, creation date, actioned status, drawings and snapshots scaled to fit. Notebook name in the footer with page numbers. Use this for after-show debriefs and director's notes packs.

CSV

Standard comma-separated. Columns: Cue, Timecode, Kind, Text, Created At (ISO 8601). Drops straight into Numbers, Excel, or anything else.

Batch send via OSC / Webhook

See OSC output & webhooks — multi-select notes and fire them all out in one message.

Trello & Airtable

See Trello / Airtable — auto-export per note, or batch the whole notebook.


Keyboard shortcuts #

For iPad users with an external keyboard (Magic Keyboard, Folio, etc.) — or anyone running Not3d on macOS.

ActionShortcut
New text noteN
New drawing noteD
Toggle actionedT
Delete note
Go to Live1
Go to Notes2
Go to Settings3
Go to NDI4
Export as PDFP
Export as CSVE
Enter multi-selectM
Select allA
Exit multi-selectEsc
SearchF

On-device backup & restore #

Separate from iCloud sync — these are named snapshots that live on the device, no network required. Useful before a risky restructuring, or to keep checkpoints across a multi-night run.

What's in a backup

A snapshot of all notebooks, notes, tags, and templates in the current show.

Create one

  1. Open Settings Backup & Restore.
  2. Tap Create backup and give it a name (e.g. "Pre-tech Tuesday").
  3. The backup appears in the list with its timestamp.

Restore or delete

  • Tap a saved backup → Restore to roll the current show back to that snapshot.
  • Swipe or tap Delete to remove a snapshot you don't need anymore.

Not the same as iCloud sync. On-device backups are local only. To move a whole show between devices, use iCloud sync from the Show Picker.

Troubleshooting #

Timecode isn't showing up

  1. Is the source actually sending? Check the console's OSC / Art-Net / LTC output.
  2. Are you on the same network as the source? Check Settings Network and confirm the device IP matches your subnet.
  3. Is Not3d listening on the right port? Default OSC port is 8000, Art-Net is 6454.
  4. For LTC: is the audio device selected in Settings Timecode?
  5. For LTC: did you grant microphone permission? Reset in iOS Settings Not3d Microphone.
  6. Toggle the timecode source off and back on — sometimes the easiest fix.

OSC messages aren't arriving

  1. Check Local Network permission for Not3d in iOS Settings — without it, nothing on the network reaches the app.
  2. Verify the source is sending to your iPad's IP, not localhost or an old IP.
  3. If the source is on a different VLAN/subnet, make sure routing/multicast allows UDP through.
  4. Try the Force Restart button in Settings OSC Input after changing ports/addresses.
  5. If timecode dies mid-show, look for the red warning banner on the Live tab — it shows up automatically after 30 s of silence and has a Restart button.

NDI: "No sources found"

  1. NDI relies on multicast — hotel and venue Wi-Fi often blocks it. Try a dedicated show network.
  2. Make sure the NDI source machine and the iPad are on the same subnet.
  3. If the source is on a different subnet, add its IP under Extra Source IPs.
  4. Run a 10-second scan again from the NDI source picker.

USB capture: device doesn't appear

  1. Confirm iPadOS 17+ (external camera support is required).
  2. Confirm the dongle is UVC-compliant — most generic HDMI-to-USB dongles are.
  3. Power-cycle the dongle (unplug, replug).
  4. Tap Rescan in Settings USB Capture.
  5. Test the dongle on a Mac to confirm it's healthy.

Collaboration: peer not appearing

  1. Same Wi-Fi network? Same subnet?
  2. Local Network permission granted on both devices?
  3. Does the venue Wi-Fi block Bonjour / mDNS? Many do.
  4. Try hosting from the iPad and joining from the iPhone (or vice versa) to rule out one device.

Trello: "Exported 0 cards"

The most common Trello issue — see the Trello section. Almost always means your notes aren't tagged and there's no default list configured.

Disable everything quickly

If the app is misbehaving mid-show: toggle off timecode (Settings Timecode) and any export integrations (Trello / Airtable / Webhook / d3). Notes still work fully without any of those.

Privacy #

  • All data is stored locally and in your personal iCloud.
  • No analytics, no tracking.
  • Network communication only to endpoints you configure — your console, your d3 machine, your webhook URL, your Trello/Airtable accounts.
  • Collaboration is peer-to-peer over the local network only — nothing routes through a Not3d server (there isn't one).