diff --git a/examples/02_jwst_covar_monte_carlo/README.md b/examples/02_jwst_covar_monte_carlo/README.md
index 554e9585..aabc446f 100644
--- a/examples/02_jwst_covar_monte_carlo/README.md
+++ b/examples/02_jwst_covar_monte_carlo/README.md
@@ -23,11 +23,12 @@ Finally, we'll check that the 3-sigma (i.e. 99.7%) covariance bounds of the cova
## Example run
-Nyx is **_blazing fast_**. The covariance mapping and the Monte Carlo runs of 5000 runs is executed in less than 30 seconds. Then it takes about 25 seconds to export all of the trajectory data into a ~61 MB parquet file.
+Nyx is **_blazing fast_**. The covariance mapping and the Monte Carlo runs of 5000 runs is executed in less than one minute. Then it takes about 41 seconds to export all of the trajectory data into a ~246 MB parquet file.
```sh
-Finished `release` profile [optimized] target(s) in 9.53s
- Running `target/release/examples/02_jwst`
+Compiling nyx-space v2.0.0-rc (/home/crabotin/Workspace/nyx-space/nyx)
+ Finished `release` profile [optimized] target(s) in 3.52s
+ Running `target/release/examples/02_jwst`
INFO anise::almanac::metaload::metafile > Saved https://naif.jpl.nasa.gov/pub/naif/JWST/kernels/spk/jwst_rec.bsp to /home/crabotin/.local/share/nyx-space/anise/jwst_rec.bsp (CRC32 = a8460057)
INFO anise::almanac::metaload::metafile > Using cached /home/crabotin/.local/share/nyx-space/anise/de440s.bsp
INFO anise::almanac::metaload::metafile > Using cached /home/crabotin/.local/share/nyx-space/anise/pck11.pca
@@ -35,7 +36,7 @@ INFO anise::almanac::metaload::metafile > Discarding cached /home/crabotin/.loc
INFO anise::almanac::metaload::metafile > Saved http://public-data.nyxspace.com/anise/v0.4/moon_fk.epa to /home/crabotin/.local/share/nyx-space/anise/moon_fk.epa (CRC32 = b93ba21)
INFO anise::almanac::metaload::metafile > Discarding cached /home/crabotin/.local/share/nyx-space/anise/moon_pa_de440_200625.bpc - CRC32 differ (got 3454388861, config expected 1817759242)
INFO anise::almanac::metaload::metafile > Saved http://public-data.nyxspace.com/anise/moon_pa_de440_200625.bpc to /home/crabotin/.local/share/nyx-space/anise/moon_pa_de440_200625.bpc (CRC32 = cde5ca7d)
-INFO anise::almanac::metaload::metafile > Saved https://naif.jpl.nasa.gov/pub/naif/generic_kernels/pck/earth_latest_high_prec.bpc to /home/crabotin/.local/share/nyx-space/anise/earth_latest_high_prec.bpc (CRC32 = 1fbb5b72)
+INFO anise::almanac::metaload::metafile > Saved https://naif.jpl.nasa.gov/pub/naif/generic_kernels/pck/earth_latest_high_prec.bpc to /home/crabotin/.local/share/nyx-space/anise/earth_latest_high_prec.bpc (CRC32 = a74b6afd)
INFO anise::almanac > Loading almanac from /home/crabotin/.local/share/nyx-space/anise/de440s.bsp
INFO anise::almanac > Loading as DAF/SPK
INFO anise::almanac > Loading almanac from /home/crabotin/.local/share/nyx-space/anise/pck11.pca
@@ -53,35 +54,35 @@ RIC Σ_x = 0.5 km Σ_y = 0.3 km Σ_z = 1.5 km
RIC Σ_vx = 0.0001 km/s Σ_vy = 0.0006 km/s Σ_vz = 0.003 km/s
Σ_cr = 0 Σ_cd = 0 Σ_mass = 0 kg
-INFO nyx_space::od::process > Mapping covariance for 1 day 6 h 30 min with 1 min step
+INFO nyx_space::od::process > Mapping covariance for 6 days 12 h with 1 min step
INFO nyx_space::od::process::export > Exporting orbit determination result to parquet file...
-INFO nyx_space::od::process::export > Serialized 1830 estimates and residuals
-INFO nyx_space::od::process::export > Orbit determination results written to ./02_jwst_covar_map.parquet in 259 ms 743 μs 488 ns
-INFO nyx_space::mc::montecarlo > Propagated 5000 states in 12 s 475 ms 70 μs 85 ns
+INFO nyx_space::od::process::export > Serialized 9360 estimates and residuals
+INFO nyx_space::od::process::export > Orbit determination results written to ./02_jwst_covar_map.parquet in 734 ms 125 μs 312 ns
+INFO nyx_space::mc::montecarlo > Propagated 5000 states in 58 s 792 ms 823 μs 694 ns
INFO nyx_space::mc::results > Exporting Monte Carlo results to parquet file...
-INFO nyx_space::mc::results > Serialized 229888 states from 2024-06-24T00:01:09.184303103 ET to 2024-06-25T06:31:09.184303103 ET
+INFO nyx_space::mc::results > Serialized 1065006 states from 2024-06-24T00:01:09.184303103 ET to 2024-06-30T12:01:09.184303103 ET
INFO nyx_space::mc::results > Evaluating 2 event(s)
-INFO nyx_space::mc::results > Trajectory written to 02_jwst_monte_carlo.parquet in 23 s 190 ms 416 μs 896 ns
+INFO nyx_space::mc::results > Trajectory written to 02_jwst_monte_carlo.parquet in 41 s 603 ms 696 μs 128 ns
```
## Analysis
+Overall, we can confirm that the 3-sigma covariance is a good approximation of the uncertainty. Notably, however, there are some dispersed trajectories whose Keplerian orbital elements are outside of the 3-sigma bound. This is probably due to the fact that Keplerian orbital elements are defined for orbits where there is a central body, but the James Webb Space Telescope is in a three body orbit, since it's near a Lagrange point.
+
### State uncertainties
As expected from any orbit determination software, Nyx can output uncertainties in the state vector in the integration frame and in the RIC frame. **Note:** these plots look pretty linear, but that's because we're running a pure prediction filter and JWST is in a stable halo orbit.
+![JWST RIC position (km)](./plots/jwst_ric_position.png)
+
+![JWST RIC velocity (km/s)](./plots/jwst_ric_velocity.png)
+
![JWST MC X (km)](./plots/jwst_mc_X_km.png)
![JWST MC Y (km)](./plots/jwst_mc_Y_km.png)
![JWST MC Z (km)](./plots/jwst_mc_Z_km.png)
-![JWST MC VX (km/s)](./plots/jwst_mc_VX_km_s.png)
-
-![JWST MC VY (km/s)](./plots/jwst_mc_VY_km_s.png)
-
-![JWST MC VZ (km/s)](./plots/jwst_mc_VZ_km_s.png)
-
### Keplerian uncertainties
A few tools try to provide Keplerian uncertainties, but often fail to do so correctly (I'm looking at you, ODTK). Nyx rotates the covariance from its Cartesian form into the Keplerian state space by computing the partial derivatives of each requested parameter with respect to the nominal state. This computation is flawless because it uses automatic differentiation (via _hyperdual numbers_). As such, the OD export also includes all of the state computations supported in Nyx, including uncommon ones like the uncertainties in the energy of the orbit or in the true anomaly.
diff --git a/examples/02_jwst_covar_monte_carlo/main.rs b/examples/02_jwst_covar_monte_carlo/main.rs
index bc9c1202..91b68b40 100644
--- a/examples/02_jwst_covar_monte_carlo/main.rs
+++ b/examples/02_jwst_covar_monte_carlo/main.rs
@@ -106,7 +106,7 @@ fn main() -> Result<(), Box> {
let setup = Propagator::default(dynamics);
// All of the analysis will use this duration.
- let prediction_duration = 30.5 * Unit::Hour;
+ let prediction_duration = 6.5 * Unit::Day;
// === Covariance mapping ===
// For the covariance mapping / prediction, we'll use the common orbit determination approach.
diff --git a/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_VX_km_s.png b/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_VX_km_s.png
deleted file mode 100644
index 282dbcb1..00000000
Binary files a/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_VX_km_s.png and /dev/null differ
diff --git a/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_VY_km_s.png b/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_VY_km_s.png
deleted file mode 100644
index 056d588d..00000000
Binary files a/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_VY_km_s.png and /dev/null differ
diff --git a/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_VZ_km_s.png b/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_VZ_km_s.png
deleted file mode 100644
index 1e474931..00000000
Binary files a/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_VZ_km_s.png and /dev/null differ
diff --git a/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_X_km.png b/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_X_km.png
index c5aba945..33df8a25 100644
Binary files a/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_X_km.png and b/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_X_km.png differ
diff --git a/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_Y_km.png b/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_Y_km.png
index bf60a582..646155b0 100644
Binary files a/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_Y_km.png and b/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_Y_km.png differ
diff --git a/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_Z_km.png b/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_Z_km.png
index 289efe55..b8bb784a 100644
Binary files a/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_Z_km.png and b/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_Z_km.png differ
diff --git a/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_aop_deg.png b/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_aop_deg.png
index 2725f03b..f00be7f0 100644
Binary files a/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_aop_deg.png and b/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_aop_deg.png differ
diff --git a/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_ecc.png b/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_ecc.png
index 5846fdac..bd0702ab 100644
Binary files a/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_ecc.png and b/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_ecc.png differ
diff --git a/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_energy_km2_s2.png b/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_energy_km2_s2.png
index 308fafb0..8ceb6afd 100644
Binary files a/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_energy_km2_s2.png and b/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_energy_km2_s2.png differ
diff --git a/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_inc_deg.png b/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_inc_deg.png
index 29c541c4..240b48c6 100644
Binary files a/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_inc_deg.png and b/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_inc_deg.png differ
diff --git a/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_raan_deg.png b/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_raan_deg.png
index f5f5ec93..c446c243 100644
Binary files a/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_raan_deg.png and b/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_raan_deg.png differ
diff --git a/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_sma_km.png b/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_sma_km.png
index e0f22e8b..e2120458 100644
Binary files a/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_sma_km.png and b/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_sma_km.png differ
diff --git a/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_ta_deg.png b/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_ta_deg.png
index 1631af7d..797ff7ba 100644
Binary files a/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_ta_deg.png and b/examples/02_jwst_covar_monte_carlo/plots/jwst_mc_ta_deg.png differ
diff --git a/examples/02_jwst_covar_monte_carlo/plots/jwst_ric_position.png b/examples/02_jwst_covar_monte_carlo/plots/jwst_ric_position.png
new file mode 100644
index 00000000..78626c1b
Binary files /dev/null and b/examples/02_jwst_covar_monte_carlo/plots/jwst_ric_position.png differ
diff --git a/examples/02_jwst_covar_monte_carlo/plots/jwst_ric_velocity.png b/examples/02_jwst_covar_monte_carlo/plots/jwst_ric_velocity.png
new file mode 100644
index 00000000..646fc0b9
Binary files /dev/null and b/examples/02_jwst_covar_monte_carlo/plots/jwst_ric_velocity.png differ