effectcraft/crates
Brandon Thomas 0bee1ab2da M15.2: web app depth (WEB-1): browser storage, Web Audio, worker renders, WebGPU viewer, PWA
- Persistence: settings, shortcuts, recent projects, imported media, saved projects and
  auto-saves live in OPFS (IndexedDB fallback) through an in-memory mirror flushed in the
  background (apps/effectcraft-web/src/store.rs, persist.rs); ConfigStore gains FileOps so
  auto-save / recovery work in the browser store; the session snapshot restores the last
  project + editor state on reload; File > Open Recent works from storage.
- Audio: Web Audio output (AudioWorklet, ScriptProcessor fallback) fed by AudioPlayback::pump
  on wasm32; A/V sync from AudioContext.currentTime; meters; unlock on first gesture.
- Background jobs: engine::offload (WorkerRequest/WorkerReply protocol, Offload trait,
  run_request); Render Queue, tracker, mask tracker, Warp Stabilizer and Roto Freeze run in Web
  Workers (a second engine instance on the shared compiled module), progress streamed back;
  cancel terminates the worker.
- GPU: WebGPU viewer frames drawn straight from the compositor's texture (gpu_display on
  wasm32 when the viewer draws plainly); async readback (Gpu::read_display_async) for pixels.
- PWA: manifest, service worker precaching the build (xtask fills list/version), icons copied
  from assets/app-icon; COOP/COEP kept from cached responses; offline reload works.
- window.effectcraft: saveToBrowser, listStored, removeStored, flush; info() reports storage,
  audio, gpu, workers.
- Tests: native store + protocol + offload (render, track, cancel) tests; smoke.mjs extended
  (GPU path, worker render responsiveness, audio gesture + playback, reload persistence,
  Open Recent, offline reload).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 23:42:00 -04:00
..
automation M14.4: scripting with an After Effects-style JavaScript object model 2026-10-02 22:13:09 -04:00
color M2.4: bit depth + linear blending + working space 2026-10-02 10:03:36 -04:00
effects Merge branch 'main' into worktree-agent-ad0c2eed1a8890262 2026-10-02 22:27:43 -04:00
engine M15.2: web app depth (WEB-1): browser storage, Web Audio, worker renders, WebGPU viewer, PWA 2026-10-02 23:42:00 -04:00
export M12.2: merge main (ROI, viewer tools); gate GPU display textures 2026-10-02 11:14:18 -04:00
expr M9.9: text style runs + paragraph settings 2026-10-02 10:34:13 -04:00
geom M0.9–M0.10: egui frontend (AE-style panels, viewer, timeline, effect controls, dialogs), desktop app with control channel, host wiring; cargo fmt 2026-10-01 14:48:31 -04:00
gpu M15.2: web app depth (WEB-1): browser storage, Web Audio, worker renders, WebGPU viewer, PWA 2026-10-02 23:42:00 -04:00
host Merge branch 'main' into worktree-agent-aba3d925078471ad6 2026-10-02 22:18:29 -04:00
keyframe M9.9: text style runs + paragraph settings 2026-10-02 10:34:13 -04:00
lottie M7.4: model import 2026-10-02 21:04:47 -04:00
media Merge branch 'main' into worktree-agent-a758de7c5b6efcc3d 2026-10-02 21:48:49 -04:00
model M7.4: model import 2026-10-02 21:04:47 -04:00
path M6.6: mask tracking + mask interpolation core (KLT, RANSAC fits, stabilization math) 2026-10-02 11:10:53 -04:00
project M7.4: model import 2026-10-02 21:04:47 -04:00
raster M9.11: 3D Channel effects on auxiliary channels 2026-10-02 21:28:37 -04:00
render Merge branch 'main' into worktree-agent-a758de7c5b6efcc3d 2026-10-02 21:48:49 -04:00
script M14.4: scripting tests for layer/comp settings, import + save, console snapshot; Project.saveAs 2026-10-02 22:18:11 -04:00
text M9.9: text style runs + paragraph settings 2026-10-02 10:34:13 -04:00
time M5.1: AE timecode/ruler display parity 2026-10-01 21:48:47 -04:00
track M6.7: roto brush segmentation + propagation 2026-10-02 22:20:25 -04:00
ui-egui M15.2: web app depth (WEB-1): browser storage, Web Audio, worker renders, WebGPU viewer, PWA 2026-10-02 23:42:00 -04:00