Skip to content

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:

  1. In the Explorer tab, tap the + button and choose Target. The Create Capture Target form opens.
  2. Give it a name.
  3. 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›".
  4. 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.