Pith. sign in

REVIEW 4 major objections 4 minor 29 references

Obstacle-Aware Four-Dimensional Trajectory Design for Urban Air Mobility

T0 review · 4 major / 4 minor · reviewed 2026-08-01 · deepseek-v4-flash

Pith's one-line read A hybrid GCS-OCP framework designs obstacle-aware, time-minimizing four-dimensional eVTOL trajectories in dense urban environments, and shows that ignoring such constraints underestimates flight time by as much as 20%.

desk verdict A solid integration of known planning pieces that makes a plausible case for GCS-OCP in dense urban eVTOL planning, but the headline 20% figure leans on a candidate-corridor search with no completeness guarantee. read the letter →

arxiv 2607.15690 v1 pith:RC3NOBGC submitted 2026-07-17 eess.SY cs.SY

classification eess.SYcs.SY
keywords UrbanAirMobilityeVTOLtrajectorydesignfour-dimensionalGraphofConvexSetsoptimalcontrolobstacleavoidancewind-awareplanningNewYorkCity
verification ladder T0 review T1 audit T2 compute T3 formal

The pith

A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.

The reading

This paper claims that a two-stage hybrid framework can produce time-minimizing four-dimensional trajectories for eVTOL aircraft in dense urban environments, respecting building obstacles, a constant wind field, nonlinear flight dynamics, and operational limits across ascent, cruise, and descent. The first stage fills obstacle-free space with intersecting convex polygons and searches a graph of those polygons for promising low-time corridors; the second stage solves an optimal control problem that constrains the cruise trajectory to pass through the selected polygons. Evaluated on New York City routes, the framework designs trajectories in scenes with up to 250 building obstacles, where a directly formulated nonconvex optimal control approach fails to converge. The paper argues that ignoring wind, obstacles, and accurate dynamics understates end-to-end flight time by as much as 20%, and that passing through convex safe regions yields lower flight times than actively avoiding obstacles.

What carries the argument

The load-bearing mechanism is the pair (GCS planner, OCP): the Graph of Convex Sets (GCS) planner selects a short candidate list of convex polygon sequences through obstacle-free airspace (using IRIS-generated polygons as vertices), and the Optimal Control Program (OCP) then finds the minimum-time trajectory that satisfies full eVTOL dynamics and operational constraints while forcing each cruise segment to lie inside the assigned polygon. The convex containment constraint is what converts a nonconvex, poorly scaling obstacle-avoidance problem into a convex per-polygon constraint set, enabling the framework to scale to 250 obstacles.

What would settle it

Take a small obstacle field with a few dozen polygons, exhaustively enumerate all valid polygon sequences from start to end, solve the OCP for each, and compare the minimum over all sequences with the minimum over the top-few candidates returned by the randomized selection; if any omitted sequence yields a lower flight time, the candidate-set assumption fails.

Watch

Extended reading notes

Core claim

The central claim is that the time-optimal eVTOL trajectory problem in cluttered urban airspace becomes tractable when obstacle avoidance is reformulated as convex containment: instead of requiring the trajectory to stay outside each building, the framework requires it to stay inside a sequence of overlapping obstacle-free convex polygons. This reformulation, combined with a hybrid of a graph-of-convex-sets path planner and a full optimal control program, yields dynamically feasible trajectories that estimate not only path coordinates but also heading, airspeed, acceleration, thrust, pitch, roll, power, and energy consumption in ascent, cruise, and descent. The authors report that this frame

Load-bearing premise

The final optimal control solve can only be as good as the candidate polygon sequences the GCS planner selects, and the paper does not prove that the true time-optimal, dynamically feasible trajectory is among the top few randomized candidates.

Editorial extensions

If this is right

  • UAM operators can generate offline, dynamically feasible, time-minimizing trajectories in dense urban environments with up to 250 building obstacles, and can extract full state and control profiles (including power and energy) for each phase.
  • Simplified trajectory estimates that ignore wind, obstacles, and detailed dynamics may be optimistic by up to 20% in flight time, which propagates to vertiport placement and air-corridor planning studies that rely on such estimates.
  • Enforcing passage through convex obstacle-free regions produces lower travel times than directly enforcing obstacle avoidance in an OCP, by up to 22% in the tested New York City scenarios.
  • The framework scales better with obstacle count than a directly formulated nonconvex OCP: at low obstacle counts the direct approach is cheaper, but as obstacles grow the direct approach's variables and constraints grow faster and it can fail to converge (e.g., at 250 obstacles).

Reading between the lines

Editorial extensions of the paper, not claims the author makes directly.

  • If the 20% underestimation holds across other cities and altitude bands, prior system-level UAM analyses that assume straight-line constant-speed trajectories may need recalibration, since their time and energy estimates embed the same omission.
  • The convex-containment idea transfers to other nonconvex trajectory planning problems (fixed-wing urban delivery, autonomous ground vehicles) wherever a graph of convex safe sets can be constructed.
  • Because the candidate set is formed by randomized sampling from a relaxed GCS solution, the reported optimum depends on the random draws; an exhaustive or completeness-guaranteed corridor enumeration would be needed to certify that the returned trajectory is globally optimal.
  • The framework's sensitivity to wind is likely understated by the constant-field experiments; the GCS edge weights already depend on ground speed along each edge, so a spatially varying wind field could change corridor selection and final time in ways the current static-wind results do not capture.
Share X Bluesky LinkedIn Reddit HN

Editorial analysis

A structured set of objections, weighed in public.

Desk editor's note, referee report, and a circularity audit.

Referee Report

4 major / 4 minor

Summary. The manuscript proposes GCS-OCP, a hybrid framework for 4D (time, latitude, longitude, altitude) eVTOL trajectory design in dense urban environments. The method first decomposes the obstacle-free cruise plane into intersecting convex polygons using IRIS, then generates a small set of candidate polygon sequences via a Graph of Convex Sets (GCS) planner with randomized rounding of a convex relaxation, and finally solves an optimal control program (OCP) for each candidate to obtain a time-minimizing trajectory that respects wind, eVTOL flight dynamics, actuator/battery limits, and phase-specific constraints. The framework is evaluated on routes to JFK airport in New York City with up to roughly 250 building obstacles. The reported results show that a back-of-the-envelope baseline (BL1) underestimates end-to-end flight time by as much as 20% and that GCS-OCP often yields lower flight times than a direct OCP baseline (D-OCP) with circular obstacle approximations, while D-OCP fails to converge in some high-obstacle cases. Limitations (offline-only, local optimality, static uniform wind, stationary obstacles) are explicitly acknowledged in Sec. V-D.

Significance. If the claims are validated, the framework is a useful offline tool for UAM trajectory planning, integrating real building footprints, weather data, a reasonably detailed multirotor dynamics model, and multi-phase operation. The paper's strengths are its use of real NYC data, the clear separation of global discrete planning and continuous optimization, and the explicit enumeration of limitations. However, the two headline claims—the 20% underestimation by simplified baselines and the superiority over D-OCP—rest on evidence that needs strengthening. In particular, the GCS candidate set has no completeness or suboptimality guarantee, and the D-OCP comparison is biased by unequal obstacle representations. These issues are fixable and should be addressed in a revision. The paper does not oversell its contribution; it is candid that the OCP solution is not globally optimal and that the method is offline.

major comments (4)
  1. [Sec. III-B, Eqs. (17)-(24); Sec. V-D] Candidate-set completeness: The GCS planner solves a convex relaxation, rounds via random sampling, and retains only the 'top few' candidate sequences. No suboptimality or completeness bound is given, and the final OCP is restricted to these candidates (Eqs. 26-27). While Sec. V-D acknowledges that the result is not guaranteed to be truly optimal, the effect on the headline 20% underestimate and on the D-OCP comparison is not quantified. Please report the gap between the convex relaxation lower bound and the selected candidate cost, or compare against exhaustive enumeration for small obstacle counts. At minimum, discuss how candidate restriction could change the reported flight-time differences.
  2. [Sec. II-D vs Sec. III-A; Table II] Unequal obstacle representations bias the comparison: D-OCP approximates each building as a circle with radius equal to the maximum vertex distance from the centroid (a conservative enlargement), while GCS-OCP uses exact polygon planforms. This makes D-OCP appear to fly longer routes and may inflate the reported advantage of GCS-OCP. Re-run D-OCP with the same polygonal obstacles (e.g., using distance-to-polygon constraints) or provide a sensitivity analysis with inscribed/circumscribed circles to establish the claimed travel-time benefit of GCS-OCP.
  3. [Table II, D-OCP rows] The 'did not converge' (DNC) entries for D-OCP are attributed to nonconvexity, but they could be artefacts of IPOPT's local optimization and poor initialization. The paper does not describe how D-OCP is initialized. Provide initial guesses (e.g., from BL1 or a simple collision-free path), try multiple random restarts, and report the best result. Without this, the claim that D-OCP is less scalable than GCS-OCP is not conclusively supported.
  4. [Sec. IV-C, Eq. (29)] The GCS-OCP obstacle constraint is stated for discretized trajectory points, but the mapping of cruise segments to polygons is ambiguous: Eq. (29) appears to apply to all cruise indices rather than the subset belonging to each polygon-constrained segment. Since the continuous trajectory between grid points is assumed straight-line, clarify how segment-to-polygon mapping is implemented and verify (e.g., by dense sampling) that the entire continuous trajectory remains inside the safe polygons, not just the discrete collocation points.
minor comments (4)
  1. [Eq. (2)] Typesetting issue: the induced velocity equation should read v_i = v_h^2 / sqrt((V cos α)^2 + (V sin α + v_i)^2).
  2. [Sec. I-B] Typo in bullet: 'topassthrough' should be 'to pass through'.
  3. [Table II] The table is wide and the subcolumns (Flight time, Run time, IPOPT time) for D-OCP and GCS-OCP are not visually separated; add clear column groupings or split into two tables for readability.
  4. [Fig. 2] Specify the color correspondences in the obstacle panel (obstacles, convex polygons, trajectory) in the caption itself, as the caption currently references colors only implicitly.

Circularity Check

0 steps flagged · score 0.0 of 10

No significant circularity: the GCS-OCP derivation is self-contained and its reported results are simulation outputs, not fitted predictions or self-citation-dependent conclusions.

full rationale

The derivation chain is: IRIS decomposes obstacle-free space into convex polygons; a GCS planner selects candidate polygon sequences; an OCP constrained to those polygons minimizes travel time under the stated eVTOL dynamics and operational constraints. Nothing in this pipeline is fitted to the reported flight times, and the final trajectory is not defined in terms of the quantities it claims to predict. The baseline comparisons are independent formulations: BL1 is a deliberately simple straight-line constant-speed estimate, and D-OCP is a separate nonconvex obstacle-avoiding OCP. Table I parameters are adopted from prior literature, including the authors' own [3] only for the intentionally crude BL1 cruise speed, which is not load-bearing for the central claim. The limitation admitted in Sec. V-D that the NLP solution is not guaranteed to be truly optimal is a correctness/optimality-gap concern, not circularity; similarly, the candidate-set heuristic could omit the true optimal corridor and affect the comparisons, but that is a completeness risk in the algorithm, not a reduction of the output to its input. No uniqueness theorem, ansatz-smuggling citation, or self-definitional relation is used to force the reported results.

Assumptions & free parameters 4 free parameters · 5 assumptions · 0 invented entities

The central claim rests on the adopted eVTOL/wind model from prior work, on the obstacle-free-corridor coverage assumption, and on solver behavior; no new physical entities are introduced.

free parameters (4)
  • Grid half-width = 500-1500 m (scenario-dependent)
    Hand-chosen extent of the cruise grid (Sec. III-A); determines which buildings are retained as obstacles and bounds the searchable obstacle-free region.
  • Cruise discretization intervals N_cr = 20-100, swept; best selected
    The framework runs the OCP for N_cr in [20,100] and chooses the minimum-time result (Algorithm 1 lines 12-17); this tuning is not justified by a convergence criterion.
  • Number of retained candidate sequences = not specified ('top few')
    The GCS planner's randomized procedure produces multiple sequences; only a small set C is kept (Sec. III-B). The threshold is unspecified and hand-chosen, affecting final trajectory quality and runtime.
  • IRIS seed grid spacing = at most 141 m between neighbors
    Seed spacing for IRIS convex decomposition (Sec. III-A); coarser spacing may miss narrow corridors and alter the polygon decomposition.
assumptions (5)
  • domain assumption The quadcopter eVTOL model of Pradeep et al. [7] (rotor thrust, weight, drag; no lifting surfaces) adequately represents real eVTOL dynamics.
    Flight dynamics Eqs. (1)-(7) are adopted from prior literature and not validated against flight tests or higher-fidelity models in this paper.
  • domain assumption Wind is constant, uniform, and horizontal.
    Stated in Sec. II and acknowledged as a limitation in Sec. V-D; real urban wind varies in space/time and has vertical components.
  • domain assumption Obstacles only matter in level cruise; ascent and descent corridors at origin/destination are obstacle-free.
    Sec. II-D states obstacles are considered 'during the cruise phase only'; vertical segments are constrained to zero horizontal ground velocity, so a building at the vertiport could invalidate the trajectory.
  • ad hoc to paper The IRIS convex decomposition and the randomized GCS candidate set contain a corridor close to the global time-optimal path.
    Sec. III-A/B: candidates are generated heuristically and only 'top few' retained; no completeness or optimality proof is given, yet the OCP's search is restricted to these corridors.
  • domain assumption IPOPT failure to converge for D-OCP (e.g., for 250 obstacles) reflects a scaling limitation of the direct formulation rather than solver initialization or parameterization artifacts.
    Used in Sec. V-B to claim GCS-OCP scales better; no attempt to improve D-OCP convergence (e.g., warm-starting, homotopy) is reported.

how reviews work

0 comments
Cite this review

Pith. "Pith review of Obstacle-Aware Four-Dimensional Trajectory Design for Urban Air Mobility." pith.science (2026). https://pith.science/paper/RC3NOBGC

@misc{pith2026260715690,
  author       = {Pith},
  title        = {Pith review of: Obstacle-Aware Four-Dimensional Trajectory Design for Urban Air Mobility},
  year         = {2026},
  howpublished = {\url{https://pith.science/paper/RC3NOBGC}},
  note         = {Machine review of arXiv:2607.15690}
}
read the original abstract

Urban Air Mobility (UAM) with electric Vertical TakeOff and Landing (eVTOL) vehicles can help address ground traffic congestion. The design of an eVTOL trajectory that is safe and reduces travel time is key for UAM adoption. Existing works on trajectory design either may not adequately incorporate dense obstacles in urban environments, complex eVTOL flight dynamics, or one or more flight phases. Not considering these factors can result in low-quality, or worse infeasible, trajectories. We develop a hybrid framework that can integrate building obstacles data, wind data, eVTOL flight dynamics, and other real-world operational constraints to estimate a four-dimensional eVTOL flight trajectory in ascent, cruise, and descent that aims to minimize travel time. Our framework first fills the obstacle-free regions with intersecting convex polygons, then identifies potentially low-travel time candidate sequences of these polygons using a Graph of Convex Sets-based path planner, and then uses an Optimal Control Program to give the final trajectory that passes through the polygons in a sequence identified before. We evaluate our framework on routes within New York City. Our framework can design trajectories respecting the above constraints in the presence of as many as 250 building obstacles. We show that not including the above constraints can underestimate the flight time by as much as 20\%.

Figures

Figures reproduced from arXiv: 2607.15690 by the authors.

Figure 1
Figure 1. Schematic of the GCS-OCP framework in cruise. [PITH_FULL_IMAGE:figures/full_fig_p002_1.png] view at source ↗
Figure 2
Figure 2. Profiles of different output variables from GCS-OCP framework for one example flight to JFK. [PITH_FULL_IMAGE:figures/full_fig_p007_2.png] view at source ↗
Figure 3
Figure 3. Comparison of computational performance between D [PITH_FULL_IMAGE:figures/full_fig_p008_3.png] view at source ↗

Discussion (0). Continue with ORCID to comment.

Reference graph

Works this paper leans on

29 extracted references · 2 canonical work pages

  1. [1]

    Conflict-free four-dimensional path planning for urban air mobility considering airspace occupancy,

    W. Dai, B. Pang, and K. H. Low, “Conflict-free four-dimensional path planning for urban air mobility considering airspace occupancy,”Aerospace Science and Technology, vol. 119, p. 107154, 2021. [Online]. Available: https://www.sciencedirect.com/science/article/pii/S1270963821006647

  2. [2]

    Path planning and real-time collision avoidance based on the essential visibility graph,

    L. Blasi, E. D’Amato, M. Mattei, and I. Notaro, “Path planning and real-time collision avoidance based on the essential visibility graph,”Applied Sciences, vol. 10, no. 16, 2020. [Online]. Available: https://www.mdpi.com/2076-3417/10/16/5613

  3. [3]

    Vertiport placement for urban air mobility to reduce time for multimodal travel,

    Y . S. Chati, Y . Sharma, K. Nikam, P. Devkar, and A. Vasan, “Vertiport placement for urban air mobility to reduce time for multimodal travel,” inUS-Europe Air Transportation Research and Development Symposium,

  4. [4]

    Research on eVTOL air route network planning based on improved A* algorithm,

    M. Ye, J. Zhao, Q. Guan, and X. Zhang, “Research on eVTOL air route network planning based on improved A* algorithm,” Sustainability, vol. 16, no. 2, 2024. [Online]. Available: https: //www.mdpi.com/2071-1050/16/2/561

  5. [5]

    Motion planning around obstacles with convex optimization,

    T. Marcucci, M. Petersen, D. von Wrangel, and R. Tedrake, “Motion planning around obstacles with convex optimization,”Science Robotics, vol. 8, no. 84, p. eadf7843, 2023. [Online]. Available: https: //www.science.org/doi/abs/10.1126/scirobotics.adf7843

  6. [6]

    Trajectory optimization of eVTOL vehicles for urban air mobility using indirect methods,

    K. Mall, R. Gadre, J. Gerardus, and D. A. DeLaurentis, “Trajectory optimization of eVTOL vehicles for urban air mobility using indirect methods,” inCongress of the International Council of the Aeronautical Sciences, September 2024. [Online]. Available: https://www.icas.org/icas_ archive/icas2024/data/papers/icas2024_0778_paper.pdf

  7. [7]

    Wind-optimal trajectories for multirotor eVTOL aircraft on UAM missions,

    P. Pradeep, T. A. Lauderdale, G. B. Chatterji, K. Sheth, C. F. Lai, B. Sridhar, K.-M. Edholm, and H. Erzberger, “Wind-optimal trajectories for multirotor eVTOL aircraft on UAM missions,” inAIAA Aviation Forum, June 2020. [Online]. Available: https://arc.aiaa.org/doi/abs/10. 2514/6.2020-3271

  8. [8]

    Multi-phase vertical take-off and landing trajectory optimization with feasible initial guesses,

    Z. Lu, H. Hong, and F. Holzapfel, “Multi-phase vertical take-off and landing trajectory optimization with feasible initial guesses,”Aerospace, vol. 11, no. 1, 2024. [Online]. Available: https://www.mdpi.com/ 2226-4310/11/1/39

Show all 29 references
  1. [9]

    Optimal cruise, descent, and landing of eVTOL vehicles for urban air mobility using convex optimization,

    Z. Wang, P. Wei, and L. Sun, “Optimal cruise, descent, and landing of eVTOL vehicles for urban air mobility using convex optimization,” inAIAA Scitech Forum, 2021. [Online]. Available: https://arc.aiaa.org/doi/abs/10.2514/6.2021-0577

  2. [10]

    A convex approach to advanced air mobility trajectory optimiza- tion,

    Y . Wu, “A convex approach to advanced air mobility trajectory optimiza- tion,” Ph.D. Thesis, University of Tennessee, 2024

  3. [11]

    Safe flight corridor constrained sequential convex programming for efficient trajectory generation of fixed-wing UA Vs,

    J. Sun, G. Xu, Z. Wang, T. Long, and J. Sun, “Safe flight corridor constrained sequential convex programming for efficient trajectory generation of fixed-wing UA Vs,”Chinese Journal of Aeronautics, vol. 38, no. 1, p. 103174, 2025. [Online]. Available: https://www.sciencedirect...

  4. [12]

    Interleaving graph search and trajectory optimization for aggressive quadrotor flight,

    R. Natarajan, H. Choset, and M. Likhachev, “Interleaving graph search and trajectory optimization for aggressive quadrotor flight,”IEEE Robotics and Automation Letters, vol. 6, no. 3, pp. 5357–5364, 2021

  5. [13]

    Implicit graph search for planning on graphs of convex sets,

    R. Natarajan, C. Liu, H. Choset, and M. Likhachev, “Implicit graph search for planning on graphs of convex sets,” arXiv, 2024. [Online]. Available: https://arxiv.org/abs/2410.08909

  6. [14]

    Computing large convex regions of obstacle-free space through semidefinite programming,

    R. Deits and R. Tedrake, “Computing large convex regions of obstacle-free space through semidefinite programming,” inWorkshop on the Algorithmic Foundations of Robotics, 2014. [Online]. Available: https://api.semanticscholar.org/CorpusID:9135142

  7. [15]

    Shortest paths in graphs of convex sets,

    T. Marcucci, J. Umenberger, P. Parrilo, and R. Tedrake, “Shortest paths in graphs of convex sets,”SIAM Journal on Optimization, vol. 34, no. 1, pp. 507–532, 2024. [Online]. Available: https://doi.org/10.1137/22M1523790

  8. [16]

    Johnson,Helicopter Theory

    W. Johnson,Helicopter Theory. Dover Publications, 1994

  9. [17]

    Air taxi skyport location problem with single allocation choice-constrained elastic demand for airport access,

    S. Rath and J. Chow, “Air taxi skyport location problem with single allocation choice-constrained elastic demand for airport access,”Journal of Air Transport Management, August 2022

  10. [18]

    Preliminary concept of urban air mobility traffic rules,

    W. Qu, C. Xu, X. Tan, A. Tang, H. He, and X. Liao, “Preliminary concept of urban air mobility traffic rules,”Drones, vol. 7, no. 1, 2023. [Online]. Available: https://www.mdpi.com/2504-446X/7/1/54

  11. [19]

    New York City, New York,

    WorldAtlas, “New York City, New York,” February 2026. [Online]. Avail- able: {https://www.worldatlas.com/cities/new-york-city-new-york.html}

  12. [20]

    Building Footprints,

    NYC OpenData, “Building Footprints,” October 2024. [Online]. Available: https://data.cityofnewyork.us/City-Government/ Building-Footprints-Map-/3g6p-4u5s

  13. [21]

    Historical Weather API,

    Open-Meteo, “Historical Weather API,” October 2024. [Online]. Available: https://open-meteo.com/en/docs/historical-weather-api

  14. [22]

    Parametric study of state-of-charge for an electric aircraft in urban air mobility,

    P. Pradeep, C. S. Kulkarni, G. B. Chatterji, and T. A. Lauderdale, “Parametric study of state-of-charge for an electric aircraft in urban air mobility,” inAIAA Aviation Forum, August 2021. [Online]. Available: https://arc.aiaa.org/doi/abs/10.2514/6.2021-3181

  15. [23]

    J. T. Betts,Practical Methods for Optimal Control and Estimation Using Nonlinear Programming, 2nd ed. USA: Society for Industrial and Applied Mathematics, 2010

  16. [24]

    CVXPY: A Python-embedded modeling lan- guage for convex optimization,

    S. Diamond and S. Boyd, “CVXPY: A Python-embedded modeling lan- guage for convex optimization,”Journal of Machine Learning Research, vol. 17, no. 83, pp. 1–5, 2016

  17. [25]

    A rewriting system for convex optimization problems,

    A. Agrawal, R. Verschueren, S. Diamond, and S. Boyd, “A rewriting system for convex optimization problems,”Journal of Control and Decision, vol. 5, no. 1, pp. 42–60, 2018

  18. [26]

    ECOS: An SOCP solver for embedded systems,

    A. Domahidi, E. Chu, and S. Boyd, “ECOS: An SOCP solver for embedded systems,” inEuropean Control Conference (ECC), 2013, pp. 3071–3076

  19. [27]

    CasADi – A software framework for nonlinear optimization and optimal control,

    J. A. E. Andersson, J. Gillis, G. Horn, J. B. Rawlings, and M. Diehl, “CasADi – A software framework for nonlinear optimization and optimal control,”Mathematical Programming Computation, vol. 11, no. 1, pp. 1– 36, 2019

  20. [28]

    On the implementation of an interior- point filter line-search algorithm for large-scale nonlinear programming,

    A. Wächter and L. Biegler, “On the implementation of an interior- point filter line-search algorithm for large-scale nonlinear programming,” Mathematical Programming, vol. 106, pp. 25–57, 2006

  21. [2025]

    Available: https://zenodo.org/records/20172044

    [Online]. Available: https://zenodo.org/records/20172044

Pith tools

Reviewed August 1, 2026 · model on record in the stance chip above.