Your First Capture#
You can capture data before writing a single line of Python. The app ships with bundled example procedures, and whenever it loads its procedure list (for example, the first time you open the target-creation picker) it also maintains CaptureProcedures/ExampleProcedure.json — a ready-made template that appears in the procedure list like any procedure of your own.
First Launch#
On first launch the app asks for your name — it's embedded in captures so multi-user datasets can tell contributors apart. You'll land on three tabs:
- Explorer — your local capture targets (this is where you'll work)
- Remote — targets hosted on a CaptureGraph server (ignore for now)
- Settings — user name, server address, and app options
Create a Capture Target#
A target is the subject of a capture project — one folder that accumulates sessions over time. To create one:
- In the Explorer tab, tap the + button and choose Target. The Create Capture Target form opens.
- Give it a name.
- Pick a procedure from the selector. Bundled procedures are listed as "Default - ‹name›" (for example, a panorama and the ReCapture time-lapse procedure); JSON files you add yourself appear as "Local - ‹name›".
- Tap Create.
Run a Session#
Open the target and start a new capture session. The app walks you through the procedure one step at a time — take the photo, answer the question, follow the guidance — and new steps appear as their prerequisites complete. When you finish, the session is saved atomically: a session only exists in the dataset if the procedure ran to completion.
Run the procedure two or three times. Each run becomes its own timestamped session.
Where the Results Land#
Everything is written under the app's Documents/CaptureData/ folder:
CaptureData/
└── MyTarget/ # the target you created
└── sessions/ # the schema's session map
├── 00063B40E29D696A/ # one session per run
│ └── ...captured files...
└── 00063B41A2C00F12/
└── ...captured files...
Session folders are named with 16-hex-digit microsecond timestamps, so they sort chronologically and never collide — sessions captured on different devices can be merged by simply copying folders together. The sessions/ folder is named after the session map in the procedure's schema; with a different schema it would be named differently.
The procedure's schema — the typed tree it fills — is embedded in the procedure JSON itself. Because the data layout is fixed before any capture happens, the folder is self-describing without a manifest, and that is what makes the one-line analysis loading in Analyzing Your Data possible.
You can browse all of this from the Files app on the device, or from Finder with the phone plugged in.
Next#
Now define a procedure of your own in Your First Procedure.