Commit graph

10 commits

Author SHA1 Message Date
bb44b78b79 MTB: port rik2 arcade-car handling into the 2D model
Scouted makepad-internal branch rik2 (+537k lines vs dev: libs/game
blocks/dynamics/asset-ai, diffusion, ggml, llama, pbr_paint, XR loopback
suites). gamemaker itself differs only trivially; the treasure is
libs/game/blocks/src/car.rs — an audited Bullet-replacement raycast
vehicle (its header documents three real btRaycastVehicle defects).

Ported the 2D-relevant formulas into model.rs/board_view.rs:
- engine headroom: force tapers to zero at top speed
- reverse at half authority; one-pedal semantics (down = brake while
  rolling, reverse once stopped; B stays explicit for 3-point turns)
- steering authority tapers above STEER_PEAK_SPEED (6 m/s): full lock
  in the parking bay, calm wheel at road speed

13/13 engine tests green (clean-drive tape extended for the tapered
engine), UI smoke ALL GREEN on the rebuilt release binary.
2026-09-02 10:13:54 +00:00
a32df42950 MTB: game verified live — plays, renders, examiner scores; UI smoke green
Verified end-to-end on makepad dev HEAD under Xvfb + Mesa via the new
--remote control surface (PNG grabs + key injection):
- board renders (roundabout/island, arms, perimeter, bays 1-6, zebra,
  STOP line + text, U-turn zone, W/N/E/S gates) — screenshots in-crate
- driving works at 40-50 km/h, indicator chips mirror the car's blinker
- the examiner caught a scripted illegal U-turn: toast + score 100->85,
  exactly the penalty table; R-restart resets the sheet
- tools/ui_smoke.sh: 7-assertion remote-API suite, ALL GREEN in ~7s

Fixes found along the way:
- board text was invisible: DrawText renders nothing without a
  font_family — set theme.font_bold in the widget DSL
- ring seams: arms now tuck under the ring band (gap rr+0.4*lw)
- patches/0003: upstream in-process hub gateway advertised port 0 to
  child apps (STUDIO_HOST) + MAKEPAD_TEST_NO_HEADLESS_ENV opt-out while
  the Linux headless build cfg is broken upstream; hub-driven UI tests
  feature-gated (hub-ui-tests) since query routing still stalls at this
  pin — ui_smoke.sh is the working equivalent
- setup_mtb.sh: copy (never symlink) the crate into examples/ —
  CARGO_MANIFEST_DIR bakes resolved paths into test binaries
2026-09-02 09:51:29 +00:00
d72ff85ea1 MTB: Model Town Board traffic-school game on makepad dev HEAD (79f938c)
An interactive NTSA-style Model Town Board: drive a car top-down and learn
lanes, roundabouts, signalling, stop/give-way, parking and U-turns, scored
like the examiner's 100-point sheet.

- model.rs: pure rules engine — directed-lane network (keep-left by
  geometry), clockwise roundabout + give-way vs deterministic ring
  traffic, stop lines, U-turn median gap, bay/parallel parking checks,
  missions + grades + quiz deck; fixed 60Hz step and frame-indexed input
  tapes (gamemaker discipline) so everything replays bit-identically.
- board_view.rs: Splash-era custom widget (script_mod!/register_widget),
  fixed-step loop, keyboard driving, dot-stepped DrawColor rendering,
  racing.splash palette.
- app.rs: lessons rail, HUD, toasts, results card; ek/jk skill notes
  applied (one accent, single blink source = the car's indicators,
  instant HUD updates, >=40px targets, subtle-exit toasts).
- tests: 13 engine tests green (tape-driven rule journeys); 3 UI tests
  pending the release prewarm (visible-under-Xvfb — headless build cfg is
  broken upstream at this pin, documented in setup_mtb.sh).
- Inspiration mined from makepad-internal apps/arcade + examples/gamemaker
  and makepad HEAD libs/sim, per plan.
2026-09-02 09:37:28 +00:00
andodeki
c24e87e99f Coverage tranche: full-stack LLVM coverage 95.7% lines, +16 tests, RefCell crash fix
- docs/coverage/: COVERAGE.md (methodology, exclusions, landmines) +
  llvm-cov report + LCOV export. Union of engine (unit+integration) and
  headless UI layers over the real release apps: 95.71% lines / 94.59%
  regions / 97.88% functions across the three ports (149 tests green).
- patches/0002-hub-graceful-child-shutdown.patch: hub closes the child
  app's stdin (EOF -> clean exit -> LLVM profile flush) before falling
  back to SIGKILL; without it app-side coverage reads 0%.
- setup_makepad.sh: pin MAKEPAD_SHA, fatal patch checks, apply both
  patches, rustup default toolchain 1.98.0.
- koboyo: FIX RefCell double-borrow crash in the Zoom-to-fit handler
  (read viewport before canvas_mut; found by the new UI test, app died
  with exit 101 'RefCell already borrowed' at widgets/widget.rs:1168).
- New tests: koboyo +5 integration (key->tool map, kind_for_tool arms,
  delete/undo, content_bbox/zoom_to_fit, lasso) +4 UI (freehand
  gestures, select/move/delete + history keys, wheel zoom, ten element
  kinds + fit, rail lock/connect/export); rider +1 integration +4 UI
  (account rows, crosshair/Now pill, found-back/call/cancel, send
  button); insurance +2 integration (SheetTab tables, SheetDrag
  clamps).
2026-09-01 19:58:51 +00:00
andodeki
bcd362ed0d Deep assessment v2 (brutal, evidence-based) + phased improvement roadmap
- makepad_ports_deep_assessment.md: architecture/design/performance/bugs/security/quality,
  scored 5.4/10 with file:line evidence; key findings: unpinned dev checkout (S1),
  commit-on-down + zero animators (D1/D2), undo deep-copies scene (P1), god-router +
  full chrome resync (A2/A3), copy-coupled UI tests (B3), test-shaped product (A4)
- plans/ROADMAP.md: Phases 0-5 mapping findings to plans 000-005 + engine hardening,
  tranche discipline per phase
2026-09-01 18:59:16 +00:00
andodeki
3cfeaa289c Add implementation plans for makepad-ui-craft (Emil's improve-animations plan format)
plans/README.md: index, execution order 000->005, executor ground rules (test gate, DSL landmines)
000: shared craft crate (easing/duration/color tokens, Pressable, CraftToast, motion math + units)
001: HIGH press contract - feedback on down, commit on up-if-over, 0.96 scale (all 3 crates)
002: MEDIUM toast enter/exit, interruptible, reduced-motion aware (all 3 crates)
003: MEDIUM insurance sheet momentum projection + velocity-handoff settle, rubber-band
004: MEDIUM koboyo drawer slide, origin-aware popovers, animated camera fit
005: LOW polish - color tokens, concentric radii, real icons, tabular figures
2026-09-01 18:50:05 +00:00
andodeki
d50006edb0 Vendor upstream skill sources: emilkowalski/skills @ d23d7f8, jakubkrehel/skills @ 267330e (MIT)
Unmodified snapshots under skills/vendor/ with provenance in VENDOR.md;
skills/README.md updated to index them.
2026-09-01 18:44:48 +00:00
andodeki
e09f6bbb51 Add makepad-ui-craft skill pack: Emil Kowalski + Jakub Krehel doctrine translated to Makepad 2.0
- skills/README.md: provenance + index
- SKILL.md: merged design-engineering doctrine, Makepad-native (animator, script_mod!)
- EASING.md: CSS cubic-bezier -> Ease.Bezier translation verified against dev@b41e740
- RECIPES.md: press scale 0.96, toast enter/exit, sheet settle w/ velocity handoff, stagger, reduced motion
- PORTS-AUDIT.md: Before/After audit of rider/koboyo/insurance with file:line refs
2026-09-01 18:36:57 +00:00
andodeki
bceacac539 Add uploads: ride app screenshots + reference photos 2026-08-04 06:28:32 +00:00
andodeki
7ddd75fb70 Makepad 2.0 ports: rider, koboyo, insurance (+ HTML sources, assessments)
Three single-file HTML apps ported to Makepad 2.0 (dev b41e740) script_mod! DSL:
- rider (ride.html): 21 unit + 9 integration + 9 headless UI tests
- koboyo (koboyo.html): 29 + 14 + 8
- insurance (insurance.html): 28 + 14 + 8
All 140 tests green. Includes headless-Linux platform patch, full README,
setup script, and three brutal codebase assessments with execution plans.
2026-08-04 05:07:18 +00:00