<feed xmlns='http://www.w3.org/2005/Atom'>
<title>opencut/rust, branch rust-rewrite</title>
<subtitle></subtitle>
<id>http://git.cashmere.rs/opencut/atom/rust?h=rust-rewrite</id>
<link rel='self' href='http://git.cashmere.rs/opencut/atom/rust?h=rust-rewrite'/>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/'/>
<updated>2026-07-28T18:14:51Z</updated>
<entry>
<title>feat: port domain crates to Rust (session 1 complete)</title>
<updated>2026-07-28T18:14:51Z</updated>
<author>
<name>cashmere</name>
<email>cashmere@autistici.org</email>
</author>
<published>2026-07-28T18:14:51Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=32438ce25f69de99d2523b98237f62cfa90890d7'/>
<id>urn:sha1:32438ce25f69de99d2523b98237f62cfa90890d7</id>
<content type='text'>
All green: cargo test --workspace (~300 tests, 0 failures).
- timeline (45): placement, resize/ripple, split, snap, retime,
  audio separation, scene helpers
- animation (73): bezier solver, channel sampling, keyframe ops,
  split/clamp/clone, param definitions
- commands (9): Command trait, BatchCommand, history, 19 concrete
  commands, freeze-frame port 1:1
- audio (22): audible collection, range mixing, mastering limiter,
  rms/peak buckets
- text (19): cosmic-text layout/measure/raster, backgrounds,
  decorations
- graphics (52): full CSS gradient parser, tiny-skia raster,
  4 shape definitions
- effect-defs (16): blur definition, registry, pass resolution
- mask-defs (19): all 9 mask renderers via tiny-skia
- renderer (6): node model + scene builder port
- desktop: GPUI projects screen wired to ProjectStore
- scene: factory (web defaults: v32, Main Track, 1920x1080, 30fps)
</content>
</entry>
<entry>
<title>feat: GPUI desktop port foundation</title>
<updated>2026-07-28T17:41:16Z</updated>
<author>
<name>cashmere</name>
<email>cashmere@autistici.org</email>
</author>
<published>2026-07-28T17:41:16Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=f5a82152394fde4d8f740f664ab7737b82861618'/>
<id>urn:sha1:f5a82152394fde4d8f740f664ab7737b82861618</id>
<content type='text'>
- scene crate: full project/scene/element model, serde round-trip
  proven against the web SerializedProject shape
- transfer crate: .ocp zip container, cross-compat with web fflate
  archives proven in both directions
- storage crate: filesystem project store replacing IndexedDB,
  .ocp import/export
- media crate: ffmpeg-next 8 decoder (frames, audio, thumbnails,
  waveform summaries)
- playback crate: wall-clock anchored, frame-rounded playback clock
- gpu crate: native texture readback; compositor renders headless
  offscreen on Vulkan (spike test)
- flake devshell: rust toolchain, GPUI native deps, ffmpeg dev,
  bindgen clang args; GPUI hello-world builds
- port plan in notes/gpui-port.md
</content>
</entry>
<entry>
<title>refactor: split animation helpers by domain</title>
<updated>2026-04-26T18:44:07Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-26T18:44:07Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=6b1f38a9a31a0eedaa7abea70f232960469351d5'/>
<id>urn:sha1:6b1f38a9a31a0eedaa7abea70f232960469351d5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor: centralize editor interaction state</title>
<updated>2026-04-25T01:56:22Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-25T01:56:22Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=6a22a3ecbdff2d0e6a4c24c8db40bb86bc01b692'/>
<id>urn:sha1:6a22a3ecbdff2d0e6a4c24c8db40bb86bc01b692</id>
<content type='text'>
Move timeline and preview gestures into dedicated controllers so hooks stay thin around editor state and DOM events.

This also routes drag and playback synchronization through manager APIs and reuses persistent wasm surfaces so scrubbing, seeking, and preview rendering stay in sync.

Made-with: Cursor
</content>
</entry>
<entry>
<title>perf: improve rendering performance by ~20x</title>
<updated>2026-04-22T14:48:37Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-22T14:48:37Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=cceb835a84c125990ad8e49784e01a7c52636bb3'/>
<id>urn:sha1:cceb835a84c125990ad8e49784e01a7c52636bb3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: bump opencut-wasm version</title>
<updated>2026-04-22T12:24:28Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-22T12:24:28Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=7428dc75cfef15481ad747806e81309a5a99e3a9'/>
<id>urn:sha1:7428dc75cfef15481ad747806e81309a5a99e3a9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: wasm WebGL only until WebGPU is fixed</title>
<updated>2026-04-22T12:20:40Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-22T12:20:40Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=1301d027e94effbf329f9c1e9b6e937f58aa1a81'/>
<id>urn:sha1:1301d027e94effbf329f9c1e9b6e937f58aa1a81</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: WebGL frame rendering and opencut-wasm 0.2.8</title>
<updated>2026-04-19T05:42:52Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-19T05:42:52Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=729d10592f4e802f91c555c309ff3ba4b119f843'/>
<id>urn:sha1:729d10592f4e802f91c555c309ff3ba4b119f843</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: align LayerUniformBuffer to 16 bytes for WebGL compat</title>
<updated>2026-04-18T13:01:59Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-18T13:01:59Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=794d4ae149f50bc24c793ba1e9cc2312e0d21f37'/>
<id>urn:sha1:794d4ae149f50bc24c793ba1e9cc2312e0d21f37</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: bump opencut-wasm to 0.2.5</title>
<updated>2026-04-13T03:08:29Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-13T02:59:53Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=3d9d669cb96a74388b879996c9a98a1f22c79a3b'/>
<id>urn:sha1:3d9d669cb96a74388b879996c9a98a1f22c79a3b</id>
<content type='text'>
</content>
</entry>
</feed>
