Commit Graph

491 Commits

Author SHA1 Message Date
itsrubberduck
34df91188d einfache verison 2026-02-20 23:47:48 +01:00
itsrubberduck
a3056491d9 fix(pfd): correct 3D aircraft orientation and heading indicator layout
Aircraft model rebuilt with proper Three.js coordinate system:
- Wings along X axis (horizontal), fuselage along Z (forward=-Z), Y=up
- Pitch rotates around X, bank around Z
- Camera positioned for front-left view

Heading indicator fixed to match Airbus PFD style:
- Yellow heading readout box at top with pointer triangle below
- Ticks grow upward from bottom edge
- Labels positioned above ticks

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 23:38:42 +01:00
itsrubberduck
0d1dae87e7 fix(3d): correct aircraft rotation axes and camera position
Pitch rotates around Y axis (wing axis), bank around X axis
(longitudinal axis). Camera moved to front-right view to clearly
show both pitch and bank movements.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 23:32:13 +01:00
itsrubberduck
a22fcbd240 fix(stick-input): correct vertical stick direction
Remove Y-axis inversion so pulling stick down (toward user) gives
positive pitch (nose up), matching real Airbus sidestick behavior.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 23:29:16 +01:00
itsrubberduck
fcfa46c37a fix(pfd): use correct Nuxt auto-import component names (FlightlabPfd*)
Nuxt auto-import prefixes component names based on directory path.
Components in app/components/flightlab/pfd/ are registered as
FlightlabPfd*, not Pfd*. Fixed in learn-pfd.vue and PfdContainer.vue.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 23:28:39 +01:00
itsrubberduck
36cd0c8b69 feat(stick-input): add touchscreen stick-input page and WS session to learn-pfd
- learn-pfd.vue now creates a WebSocket session on mount and displays
  the 4-char session code in the header bar for touchscreen connection
- New stick-input.vue page at /flightlab/medienstationen/stick-input
  with touch-based sidestick (spring-loaded 2D pad) and throttle
  (vertical slider). Joins session by code, sends input at 30Hz.
- Stick input page added to medienstationen index as second card.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 23:21:27 +01:00
itsrubberduck
4404bd168a fix(learn-pfd): use h-screen and min-h for proper grid layout height
Root div min-h-screen → h-screen ensures flex-1 children get real
height. Grid children get min-h-[200px] so Three.js and PFD SVG
have measurable container dimensions to render into.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 23:18:32 +01:00
itsrubberduck
c7a64521f6 feat(learn-pfd): add main learn-pfd page with dynamic layout and WebSocket input
Integrates FBW physics, PFD SVG instruments, 3D aircraft model,
TTS narration, goal evaluation engine, and WebSocket stick input
into a single interactive learning experience. Features dynamic
CSS Grid layout that transitions between model-focus, split, and
pfd-focus modes as the user progresses through phases.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 23:04:08 +01:00
itsrubberduck
c6a634b7de feat(medienstationen): add medienstationen index page and link from flightlab
New index page at /flightlab/medienstationen with PFD learning card
and coming-soon placeholder. Adds medienstationen section link to
the main flightlab index page.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 23:01:29 +01:00
itsrubberduck
ef8f1a1991 feat(engine): add learn-pfd engine composable with goal evaluation
Composable manages phase navigation, interaction goal monitoring with
hold-time validation, progress tracking, and hint system for the
learn-pfd medienstation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 23:01:16 +01:00
itsrubberduck
636f7f7e12 feat(data): add learn-pfd scenario phases with progressive PFD element introduction
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 18:33:15 +01:00
itsrubberduck
9a6eb7892b feat(pfd): add SVG PFD instrument components (attitude, speed, alt, VS, heading)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 18:33:13 +01:00
itsrubberduck
2d6d8e43c3 feat(3d): add Three.js aircraft model component for PFD learning
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 18:32:02 +01:00
itsrubberduck
c4c841a2c1 feat(ws): add stick-input WebSocket message handler and client support
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 18:30:26 +01:00
itsrubberduck
4e74b74255 feat(fbw): add Airbus Normal Law FBW physics composable
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 18:30:16 +01:00
itsrubberduck
3f28abae1f feat(types): add LearnPfdPhase, PFD element types, and stick-input WS event
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 18:29:01 +01:00
itsrubberduck
4493642d4d chore: add three.js dependency for 3D aircraft model
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 18:28:32 +01:00
itsrubberduck
3b13e2448a docs: add learn-pfd implementation plan
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 18:23:13 +01:00
itsrubberduck
ca98cb66ba docs: add learn-pfd medienstation design document
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 18:18:44 +01:00
itsrubberduck
352ad8d68e feat(flightlab): simplify takeoff flow and wait for TTS before auto-advance 2026-02-19 00:04:21 +01:00
itsrubberduck
d40259d03c manuelle anpassungen an der config 2026-02-18 23:19:37 +01:00
itsrubberduck
f384e30b9b feat(flightlab): add seatbelt phases to stepper and escape shortcuts 2026-02-18 22:52:23 +01:00
itsrubberduck
390c38d8bd Bridge dome light mode mapping and flightlab seat belt flow 2026-02-18 22:43:56 +01:00
itsrubberduck
7971aeace5 add the lidl dome light temporarily 2026-02-18 21:49:03 +01:00
itsrubberduck
5915479c1a hoehen anpassen damit alles etwas ruhiger wird 2026-02-18 19:35:07 +01:00
itsrubberduck
509c5cabaa fix(flightlab): remove master warn ack panel 2026-02-18 19:20:40 +01:00
itsrubberduck
c605705a38 change default settings 2026-02-18 18:05:12 +01:00
itsrubberduck
04f2b6473e besser error message 2026-02-17 19:10:50 +01:00
itsrubberduck
73b3d19e33 personal waitlist link 2026-02-17 19:04:52 +01:00
itsrubberduck
9f7a34241a test: expand coverage for core backend features 2026-02-17 18:36:13 +01:00
itsrubberduck
ff4a1c3ee5 smoketests 2026-02-17 18:26:20 +01:00
itsrubberduck
f88fced5b1 typescript 2026-02-17 18:19:55 +01:00
itsrubberduck
8f45c3397d fix typescript errors and update dependencies 2026-02-17 18:13:04 +01:00
itsrubberduck
d34fba5cba add server log 2026-02-17 15:31:32 +01:00
itsrubberduck
794555fbc2 Fix bridge connect UI states for unauthenticated users 2026-02-16 17:32:13 +01:00
itsrubberduck
b5327ec1b9 Redesign bridge connect flow and simplify linking UX 2026-02-16 17:25:53 +01:00
itsrubberduck
c4f9237916 feat(bridge): add unlink flow for linked tokens 2026-02-16 16:39:18 +01:00
itsrubberduck
e1130734c1 fix: add CORS middleware for bridge endpoints 2026-02-16 16:21:30 +01:00
itsrubberduck
3d5a18df6a use 6 digit codes for bridge 2026-02-16 15:47:12 +01:00
itsrubberduck
a495077476 fix spacing 2026-02-15 21:04:06 +01:00
itsrubberduck
954dba857e Merge branch 'landing-new-marketing3' 2026-02-15 21:02:06 +01:00
itsrubberduck
caac7e35a1 Polish landing flow and add roadmap/news hero sections 2026-02-15 21:01:52 +01:00
itsrubberduck
36f5a72c66 fix(flightlab): prevent overlapping takeoff voices on rapid phase changes 2026-02-15 18:05:11 +01:00
itsrubberduck
bb73b43a89 refactor(flightlab): rewrite takeoff texts for simulator context and auto-stop sounds on phase change
Rewrote all takeoff scenario texts from passive fear-of-flying coaching
to active simulator operation instructions (thrust levers, sidestick,
rudder pedals, gear lever, instrument readings). Stop looping ambient
sounds automatically when transitioning to phases that don't reference them.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 16:50:04 +01:00
itsrubberduck
7a1f35bc90 refactor(flightlab): remove instructor flow and simplify takeoff controls 2026-02-15 16:32:20 +01:00
itsrubberduck
08808b73b7 Fix bridge telemetry boolean coercion for auto-advance conditions
SimConnect sends boolean fields (on_ground, parking_brake, etc.) as 0/1
numbers. The condition evaluator uses strict equality (===), so
0 === false was returning false even when the condition was semantically
met. Cast boolean telemetry fields with !! to ensure proper type matching.
Also reduce solo-mode telemetry polling from 500ms to 2000ms.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 16:26:50 +01:00
itsrubberduck
dc36a4b63f Connect bridge telemetry to FlightLab with auto-advance triggers
Map raw bridge fields (ias_kt, on_ground, etc.) to FlightLabTelemetryState
format, add direct telemetry polling endpoint for solo mode, and show
sim condition panel in sidebar regardless of auto-advance toggle state.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 16:16:42 +01:00
itsrubberduck
76471c4bd4 Unify bridge auth header and add live telemetry panel 2026-02-15 16:04:07 +01:00
itsrubberduck
52ddd843c1 Fix local sharp setup for Nuxt image processing 2026-02-15 15:47:06 +01:00
itsrubberduck
df21f4242d Add roadmap sim-control idea and update classroom news date 2026-02-15 15:41:02 +01:00