Reusable 3D Earth globe widget (pure OCaml + WebGL)
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add per-satellite epoch, smoothness + determinism tests

Satellite.v now takes ~epoch_unix for per-satellite TCA timestamps.
Scene.update_time computes dt = current_unix - satellite.epoch_unix
per satellite, preventing jumps when set_satellites is called.

14 satellite tests including:
- Position/trail determinism (same dt → same result)
- Smoothness over 600 frames at 100x (max jump < 0.01 GL units)
- Epoch independence and stability across recreation

+1 -1
+1 -1
test/test_satellite.ml
··· 80 80 let t2 = Satellite.trail_positions sat ~dt:1000. in 81 81 Array.iteri (fun i p1 -> 82 82 match p1, t2.(i) with 83 - | Some v1, Some v2 -> 83 + | Some (v1 : Math.Vec3.t), Some v2 -> 84 84 check_float (Fmt.str "trail[%d].x" i) v1.x v2.x; 85 85 check_float (Fmt.str "trail[%d].y" i) v1.y v2.y 86 86 | _ -> Alcotest.fail "trail point is None") t1