Skip to content

Phytograph — from photograph to point cloud

Phytograph

A desktop application for measuring, comparing, and modeling plant architecture from LiDAR scans — built for plant scientists who work with point clouds, meshes, skeletons, and procedural plant models.

  • Import LiDAR scans

    Drag and drop .las, .laz, .e57, .ptx, .ply, .pcd, or ASCII (.xyz, .txt, .csv, .pts, .asc, .ascii) point clouds into a 3D viewer that handles tens of millions of points. RIEGL .riproject and .PROJ scanner projects import directly, and an SBET trajectory places a moving-platform scan. Save the whole scene as a .phyto project.

  • Clean and prepare

    Transform, crop, erase, filter, resample, and cross-section a cloud, compute normals and new scalar fields — then backfill the sky/miss rays that leaf area density depends on.

  • Register and compare

    Auto-register rotated scans, refine with ICP, and stitch overlaps into one cloud — with cloud-to-mesh distance statistics (mean, median, percentiles, and coverage at fractions of the bounding-box diagonal).

  • Segment scans

    Classify ground with a cloth simulation filter, separate wood from leaf with a machine-learning model, split a terrestrial or airborne plot into individual trees, and label a herbaceous plant's soil, stem, and individual leaflets — then carry the labels through the rest of the pipeline.

  • Label points by hand

    Paint your own classes with a lasso or brush to correct a classifier or build ground truth, with per-class counts and undo.

  • Measure leaf angles

    Triangulate a leaf-on scan into leaf surfaces and read their orientations — inclination and azimuth distributions, canonical de Wit fits, and the G(θ) that leaf area density depends on. The same triangulation also reconstructs branch and canopy surfaces.

  • Extract skeletons

    Pull topological skeletons out of woody scans, with branch order colored by Strahler number and total length reported.

  • Build QSMs

    Reconstruct dormant trees as connected cylinders with fitted radii, segment continuous shoots, and classify them by shoot rank — with woody volume, trunk diameter, and per-rank metrics. Add leaves by phyllotaxis and match a measured leaf-angle distribution.

  • Run a tree inventory

    Turn a segmented plot into a tree list — stem position, DBH, stem curve, height, crown base, and crown size — summarize the stand (stems/ha, basal area, QMD, Lorey's height, canopy cover, biomass), and build a QSM for every tree in one run.

  • Measure canopy structure

    Invert overlapping scans into a voxel grid of leaf area density (m²/m³) with its vertical profile and LAI, and fit crown shapes (ellipsoid, prism, cone, alpha shape) for height and volume.

  • Model the terrain

    Grid classified ground returns into a bare-earth DEM/DTM — with hillshade, slope, and aspect layers — plus the top-of-canopy DSM and the canopy height model that comes from subtracting them.

  • Generate procedural plants

    Grow Helios plant models — trees, vines, cereals, vegetables, weeds — to a target age, then morph their parameters interactively.

  • Simulate a scan

    Place virtual scanners (static or moving-platform) around a plant and synthesize the point cloud they would produce, with full control over beam geometry.

Start the User Guide →   Browse workflows


Phytograph is developed at the Bailey Lab at UC Davis. Source code at github.com/PlantSimulationLab/Phytograph.