@@ -4,6 +4,23 @@ This gallery is the Python-facing showcase for the `pycddp` bindings. Each
44demo is solved directly from Python, then rendered as an animation with
55Matplotlib.
66
7+ <div class =" portfolio-hero " >
8+ <div >
9+ <p class="portfolio-kicker">Interactive Demo Gallery</p>
10+ <h2>Solver results presented as a web-first portfolio</h2>
11+ <p>
12+ These examples are the quickest way to understand what the Python bindings
13+ actually produce: constrained solves, animated trajectories, and compact
14+ reproducible workflows.
15+ </p>
16+ <p>
17+ <a class="md-button md-button--primary" href="../python/">Python package guide</a>
18+ <a class="md-button" href="https://github.com/astomodynamics/cddp-cpp/tree/master/examples">Browse examples</a>
19+ </p>
20+ </div >
21+ <img src =" ../assets/cddp_in_cpp.png " alt =" CDDP illustration " >
22+ </div >
23+
724## Regenerate the gallery
825
926``` bash
@@ -13,36 +30,45 @@ python examples/python_portfolio.py --demo all --output-dir docs/assets/python_p
1330
1431## Demos
1532
16- ### Pendulum Swing-Up
17-
18- Torque-limited ` CLDDP ` solve for a damped pendulum.
19-
20- <img src =" assets/python_portfolio/pendulum_swing_up.gif " width =" 820 " alt =" Pendulum swing-up animation " >
21-
22- ### Cart-Pole Swing-Up
23-
24- Bounded-force ` CLDDP ` solve that swings the pole upright and settles near the
25- origin.
26-
27- <img src =" assets/python_portfolio/cartpole_swing_up.gif " width =" 820 " alt =" Cart-pole swing-up animation " >
28-
29- ### Unicycle Obstacle Avoidance
30-
31- ` IPDDP ` solve with a circular obstacle constraint, showing how the Python
32- bindings can be used for constrained trajectory visualization without building
33- the legacy C++ plotting stack.
34-
35- <img src =" assets/python_portfolio/unicycle_obstacle_avoidance.gif " width =" 820 " alt =" Unicycle obstacle avoidance animation " >
36-
37- ### MPCC Racing Line
38-
39- Full-lap receding-horizon contouring control on a compact racing circuit,
40- solved from Python with a custom nonlinear objective and a lightweight bicycle
41- model.
42-
43- This is a compact kinematic MPCC-style showcase rather than a full reproduction
44- of the autonomous-racing controller in Liniger et al. The bundled track data is
45- derived from the [ ` alexliniger/MPCC ` ] ( https://github.com/alexliniger/MPCC )
46- reference implementation.
47-
48- <img src =" assets/python_portfolio/mpcc_racing_line.gif " width =" 820 " alt =" MPCC racing line animation " >
33+ <div class =" portfolio-grid " >
34+ <section class =" portfolio-card " >
35+ <h3>Pendulum Swing-Up</h3>
36+ <p>Torque-limited <code>CLDDP</code> solve for a damped pendulum.</p>
37+ <img src="assets/python_portfolio/pendulum_swing_up.gif" alt="Pendulum swing-up animation">
38+ </section >
39+
40+ <section class =" portfolio-card " >
41+ <h3>Cart-Pole Swing-Up</h3>
42+ <p>
43+ Bounded-force <code>CLDDP</code> solve that swings the pole upright and
44+ settles near the origin.
45+ </p>
46+ <img src="assets/python_portfolio/cartpole_swing_up.gif" alt="Cart-pole swing-up animation">
47+ </section >
48+
49+ <section class =" portfolio-card " >
50+ <h3>Unicycle Obstacle Avoidance</h3>
51+ <p>
52+ <code>IPDDP</code> solve with a circular obstacle constraint, showing how
53+ the Python bindings can drive constrained trajectory visualization
54+ directly from Python.
55+ </p>
56+ <img src="assets/python_portfolio/unicycle_obstacle_avoidance.gif" alt="Unicycle obstacle avoidance animation">
57+ </section >
58+
59+ <section class =" portfolio-card " >
60+ <h3>MPCC Racing Line</h3>
61+ <p>
62+ Full-lap contouring control on a compact circuit, solved from Python with
63+ a custom nonlinear objective and a lightweight bicycle model.
64+ </p>
65+ <p>
66+ This is a compact kinematic MPCC-style showcase rather than a full
67+ reproduction of the controller in Liniger et al. The bundled track data
68+ is derived from the
69+ <a href="https://github.com/alexliniger/MPCC"><code>alexliniger/MPCC</code></a>
70+ reference implementation.
71+ </p>
72+ <img src="assets/python_portfolio/mpcc_racing_line.gif" alt="MPCC racing line animation">
73+ </section >
74+ </div >
0 commit comments