diff --git a/README.md b/README.md index 63112f49e..089b84fa4 100644 --- a/README.md +++ b/README.md @@ -2,21 +2,31 @@ # MasterSelects -
+⚡ 660 KB gzip+initial load + |
- GPU-first editing with 30 effects, 37 blend modes, 76 AI tools, and only 13 dependencies.
- Built from scratch in 2,500+ lines of WGSL and 120k lines of TypeScript.
+ GPU-first editing with 30 effects, 37 blend modes, 76 AI tools, real 3D via Three.js, and only 14 dependencies.
+ Built from scratch in 2,400+ lines of WGSL and 138k lines of TypeScript.
+ Import OBJ, glTF, GLB, FBX models directly into the timeline.
+
@@ -31,21 +41,28 @@
---
-## Security Model
+## Supported Formats
-MasterSelects is a **local-first editor**. Your timeline, media processing, rendering, and most AI-adjacent operations stay on your machine unless you explicitly call an external API. The project now has explicit trust boundaries instead of relying on "it's just localhost".
+Decoding depends on what the **browser** supports — the container is just the wrapper, the codec inside is what matters.
-**Current protections:**
-- **Native Helper bridge:** Binds to `127.0.0.1` only and requires a random startup Bearer token for HTTP and WebSocket bridge operations
-- **Dev bridge hardening:** Vite `/api/ai-tools` and local file routes require a per-session token and reject non-loopback browser origins
-- **Path restrictions:** Local file reads, listings, uploads, and locate/search operations are restricted to explicit allowed roots instead of arbitrary disk access
-- **AI tool policy:** External bridge calls run through caller restrictions and approval/confirmation gates instead of getting unrestricted editor control
-- **Secret handling:** API keys are stored in encrypted IndexedDB, `.keys.enc` import/export is disabled, and logs redact common secret/token patterns
-- **Security verification:** CI includes secret scanning plus JS and Rust security checks, and the repo has dedicated tests for bridge auth, file access, and tool policy behavior
+
| Import (Decode) | |
|---|---|
| Containers | MP4, MOV, WebM, MKV, AVI, M4V |
| Video codecs | H.264 (AVC), H.265 (HEVC)¹, VP8, VP9, AV1 |
| Audio codecs | AAC, MP3, Opus, Vorbis, FLAC, WAV/PCM |
| Image | PNG, JPG, WebP, GIF, BMP, AVIF, SVG |
| 3D Models | OBJ, glTF, GLB, FBX — rendered via Three.js with lighting |
| Download | YouTube, TikTok, Instagram, Twitter/X, Vimeo + all yt-dlp sites via Native Helper |
| Export (Encode) | |
| Containers | MP4, WebM |
| Video codecs | H.264, H.265¹, VP9, AV1 — GPU-accelerated via WebCodecs |
| Audio codecs | AAC (MP4), Opus (WebM) |
| Interchange | FCPXML (Final Cut Pro / DaVinci Resolve), PNG sequence |