Skip to content

Users Guide

Welcome to the OpenSCvx Users Guide. This section aims to provides a progressive and useful introduction to trajectory optimization with OpenSCvx, starting from first principles and building toward complex, representative problems.

Learning Path

The tutorials are designed to be read in order. Each builds on concepts from the previous, introducing new features in the context of increasingly realistic problems.

Tutorial Problem You Will Learn
01 Hello Brachistochrone Minimum-time descent curve Core API: states, controls, dynamics, time, CTCS constraints, solving
02 Drone Racing Racing through gates Nodal constraints, .at(), .over(), .convex(), keyframe initialization
03 Obstacle Avoidance 6-DOF navigation Quaternion dynamics, spatial utilities, ox.Parameter, ox.Vmap
04 Viewpoint Constraints Perception-constrained racing Custom symbolic functions, Vmap with custom functions, attitude initialization
05 Visualization 2D plots with Plotly, 3D interactive visualization with viser, Plotly-in-viser
06 Dubin's Car Conditional path planning Conditional statements, signal temporal logic (STL)
07 Multi-Link Arms Articulated robot control Lie algebra, propagated states

Quick Start

If you're new to OpenSCvx, start with Hello Brachistochrone. By the end of that tutorial you will have solved your first trajectory optimization problem and understand the core workflow:

  1. Define states and controls with ox.State and ox.Control
  2. Specify dynamics as a dictionary of symbolic expressions
  3. Add constraints using ox.ctcs() for continuous enforcement
  4. Create a Problem, initialize, solve, and post-process

From there, each subsequent tutorial introduces new capabilities while reinforcing the fundamentals.

Interactive Notebooks

Some tutorials include Google Colab notebooks for interactive learning:

These notebooks let you run the examples without local setup and experiment with parameters in real-time.

Beyond the Tutorials

After completing the tutorials, explore:

  • Examples — Complete problem implementations across domains
  • API Reference — Detailed documentation for all classes and functions