0+00Platform · Headless

Run it without the window.

The engine underneath the apps doesn't need a screen. Two of its tools install as command-line programs: Surveyor's scan converter and Pg-GPS's GNSS processor. Inside the apps, Surveyor's scripts and CAD's scripts and plugins drive the same commands you click.

PowerShell · Surveyor\binreal output, abridged
PS> .\pgc2_converter.exe --help
Supported input formats:
  .las, .laz    LAS/LAZ point cloud files
  .e57          E57 point cloud files
  .ply          PLY point cloud files (ASCII and binary little-endian)
  .pts          PTS ASCII point cloud files
  .ptx          PTX scan grid point cloud files
  .csv, .txt    CSV/TXT delimited point cloud files
…
  --analyze              Analyze input file and output JSON recommendations
  --batch FILE           Batch manifest (JSON or plain text)
  --compression MODE     none|lz4|lz4hc (default: none)
  --verify               Verify conversion output
  --verify-determinism   Run threads=1 vs threads=N conversion hash check
  --emit-pgclass FILE    Regenerate FILE.pgclass from an existing .pgc2 (no re-conversion)
Command-line tools
2Surveyor's converter and Pg-GPS's processor
Batch
1,569tilesConverted into one .pgc2 from one manifest
Results
JSONFor analysis and GNSS processing, ready for your scripts
Surveyor commands
684Every action has a name a script can call

1+00Surveyor's converter

Conversion, on its own.

The converter Surveyor uses installs beside it as pgc2_converter.exe, so a folder of scans can convert overnight from a scheduled task, without opening the app.

  • One manifest, one file

    A batch manifest lists the inputs and one output. The 1,569 LAZ tiles of USGS 3DEP lidar of Lāna'i went in as one batch and came out as one .pgc2.

  • Analyse before you convert

    --analyze samples the input and prints its recommendations for the conversion as JSON.

  • Prove the result

    --verify checks the output, and --verify-determinism converts on one thread and on many, then compares the hashes.

  • Maintenance without re-converting

    --truncate-depth writes a lighter copy, --rebase-frame moves a workspace into another frame as a metadata patch, and --emit-pgclass rebuilds the classification from an existing .pgc2.

2+00Pg-GPS

GNSS processing from a script.

Pg-GPS installs its processor as a command-line program, and the app runs the same processing out of process. Point it at RINEX observation and navigation files, add a base, and get the result as JSON.

  • Many bases, one run

    --pipeline-batch processes one rover against a list of candidate base stations.

  • Your choice of processor

    --compute-backend runs the differential geometry on the GPU, on the CPU, or picks for you.

PowerShell · Pg-GPSreal output, abridged
PS> .\gnss_editor_cli.exe --help
Pg-GPS GNSS Editor CLI
…
  --nav <file>     Load RINEX navigation file
  --obs <file>     Load RINEX observation file
  --pipeline       Run production processing pipeline orchestrator
  --base-obs <file> Optional reference/base OBS file for differential pipeline
  --pipeline-batch Run one rover/NAV against many base OBS candidates
  --compute-backend <auto|gpu|cpu> Compute backend for differential geometry (default: auto)
  --pipeline-json  Emit machine-readable JSON for --pipeline

3+00Inside the apps

Scripts made of the commands you click.

Every action in Surveyor is a named command, 684 of them. A Surveyor script is a list of those commands, not code, and CAD runs scripts and plugins against its own command set.

  • Surveyor scripts

    Each step is one of Surveyor's commands. Try a script as a dry run first, and if a step fails the script stops and names it.

  • CAD scripts

    CAD runs .scr and .pgcs scripts in a sandbox.

  • CAD plugins, in beta

    Native plugins load through a versioned C interface, and every edit a plugin makes is an attributed, undoable transaction.