2 Commits
Author SHA1 Message Date
vinihcrosaandClaude Opus 4.8 7847c01879 feat(world): match wave forces to MATLAB Dynamics reference
Bring WaveForces in line with VesselFastTime.m waveForce (D2 gap):

- Apply the [0 0 1 1 1 0] excitation DOF mask: drop 1st-order
  surge/sway/yaw excitation, keep heave/roll/pitch.
- Add 2nd-order mean drift on surge/sway/yaw (a^2 * D(w,b)).
- Add slow drift via difference-frequency Newman approximation
  (zero for a single regular component).
- Add wave-drift damping at the amplitude^2-weighted mean incidence,
  driven by body velocity relative to current.

Config gains meanDriftCoeff and driftDampingBw/Br tables; drops the
unused qtf/driftDampingCoeff/RAO-filter state.

Tests: assert the mask zeroes surge/sway/yaw excitation and that
mean drift is a non-zero steady force in a regular wave. All 257
ctest cases green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-29 21:37:54 -03:00
vinihcrosaandClaude Sonnet 4.6 6295d540a4 feat: migrate to monorepo with WASM core, Fastify API, and React frontend
- Move C++ sources to core/ subdirectory (T05)
- Add pnpm workspaces + Turborepo pipeline (T06)
- Add Emscripten CMake target and build-wasm.sh (T07)
- Implement Embind bindings via YmirBindings.cpp (T08)
- Add packages/types with TypeBox schemas for VesselDTO, ScenarioDTO, SimulationStateDTO (T09)
- Create apps/api: Fastify v4 + Drizzle ORM + SQLite with vessels/scenarios CRUD (T10-T13)
- Create apps/web: Vite + React 18 + COOP/COEP headers (T14)
- Add simulation.worker.ts for WASM loop in Web Worker (T15)
- Add Zustand simulationStore (T16)
- Add TelemetryPanel component (T17)
- Verified: pnpm build 3/3 tasks, 21ms cached; ctest 211/211 pass (T18-T19)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-28 00:08:28 -03:00