ballistic-solver (C/C++ · Python · Unity/C#)

Simulate-first intercept optimizer for moving targets under gravity and quadratic drag (+ optional wind). It integrates nonlinear projectile dynamics (RK4) and solves launch angles (θ, φ) by forming a closest-approach miss residual and running Levenberg–Marquardt.

What I built
  • Dynamics: fixed-step RK4 with quadratic drag (+ wind as air-velocity)
  • Numerical optimization: closest-approach residual → LM (damped least squares) + line-search/lambda tries
  • Speed: Broyden-style Jacobian refinement to reduce full re-linearizations
  • Robust outputs: explicit status/message + best-effort solution even on non-ideal convergence
  • Deployment: stable C ABI (FFI-ready), PyPI package with prebuilt binaries, Unity/C# via P/Invoke

Mapless Autonomous Parking (Isaac Sim · ROS 2 Humble · Autoware Universe)

Real-time mapless parking without prebuilt pointcloud/vector maps: online occupancy mapping → occupancy-only Hybrid A* replanning → fraction-index path interpolation + Stanley-based tracking for forward/reverse parking maneuvers.

What I built
  • Autoware compatibility layer: pointcloud fields/frame adaptation + self-cropping + ground filtering
  • Occupancy mapping: ego-fixed local OGM → global accumulation with probability heuristics, plus decay back to unknown for stale cells
  • Compute-bounded replanning: occupancy tiling + sliding-window ROI updates to reduce cell count and keep replanning tractable
  • Planning without vector maps: custom node using Autoware freespace planning algorithms (Hybrid A*) from occupancy-only + vehicle constraints
  • Trajectory processing: fraction-index-based interpolation over waypoint segments to construct continuous virtual references for low-speed maneuver tracking
  • Trajectory follower (core control): Stanley-based lateral control with a lateral-error derivative damping term, plus longitudinal velocity control for stable low-speed convergence
  • Forward/Reverse execution: segment-wise direction handling + gear command integration based on trajectory direction/velocity sign
  • Real-time engineering & debugging: QoS tuning to avoid backlog/timing loss, RViz2 visualization (OGM/trajectory/vehicle), and CLI status reporting

Racing Analyze GUI (MATLAB · Telemetry Analysis · Driver Coaching)

Segment-based racing telemetry analysis workbench for comparing multiple logged runs, visualizing driver/vehicle behavior, and supporting coaching-oriented inspection for circuit driving. Developed and used in collaboration with Luxon Racing Team in the GT-A class of the O-NE SUPERRACE CHAMPIONSHIP.

Racing Analyze GUI What I built
  • Fast track/core build: GPS-fix-based track core / segment reference generation for repeated run comparison
  • Fast multi-log workflow: efficient loading and caching of multiple logged runs, enabling quick switching across segments after a single analysis pass
  • Segment-wise comparison: gate/segment-based run slicing across All / S0 / S1..Sn / S(n+1) for aligned comparison of the same track region
  • Interactive replay: time-slider-based replay with play / pause / stop / speed control and pane-aware marker updates
  • Flexible visualization modes: XY, TS, MAP, POLAR, KDE, GG views for telemetry inspection from multiple perspectives
  • Sensor-channel flexibility: arbitrary logged channels can be assigned to x / y / color, enabling broad exploratory analysis across vehicle states and driver inputs
  • Signal conditioning: smoothing and abnormal-data interpolation support for more stable visualization and comparison
  • Pane-level workflow tools: per-pane rerender and pop-out windows for focused inspection without rebuilding the full workspace
  • Metrics extraction: segment-level metrics such as segment time, velocity statistics, and acceleration-related indicators for quick run ranking and review
  • Practical use case: supports visualization assistance and coaching workflow for real racing data analysis

EV Gear Reduction Sizing (early work)

MATLAB-based drivetrain sizing: datasheet torque–speed modeling + longitudinal acceleration simulation, sweeping gear ratios to minimize run time.