<feed xmlns='http://www.w3.org/2005/Atom'>
<title>opencut/Cargo.toml, branch rust-rewrite</title>
<subtitle></subtitle>
<id>http://git.cashmere.rs/opencut/atom/Cargo.toml?h=rust-rewrite</id>
<link rel='self' href='http://git.cashmere.rs/opencut/atom/Cargo.toml?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>feat: wasm compositor</title>
<updated>2026-04-13T03:01:51Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-13T02:40:29Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=8230faf082c405c9fd0fa640f4ce2284315782ae'/>
<id>urn:sha1:8230faf082c405c9fd0fa640f4ce2284315782ae</id>
<content type='text'>
Made-with: Cursor
</content>
</entry>
<entry>
<title>refactor: split effects and masks into dedicated rust crates, introduce MediaTime and FrameRate</title>
<updated>2026-04-06T23:09:13Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-06T23:09:13Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=e4b67094e757917588fb624a30aa046667403add'/>
<id>urn:sha1:e4b67094e757917588fb624a30aa046667403add</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: migrate GPU renderer from WebGL to wgpu/WASM</title>
<updated>2026-04-01T11:57:32Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-01T11:57:32Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=e579ae120290329fd697b50ea9138ffccb65a805'/>
<id>urn:sha1:e579ae120290329fd697b50ea9138ffccb65a805</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: migrate time utilities from typescript to rust WASM</title>
<updated>2026-03-31T02:03:52Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-03-31T02:03:52Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=dcf54c1250431f5a4a2848f7c07781ef5eebacaf'/>
<id>urn:sha1:dcf54c1250431f5a4a2848f7c07781ef5eebacaf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: add shared Rust crates for cross-platform time utilities</title>
<updated>2026-03-29T13:58:46Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-03-29T12:25:25Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=5777a555f60b780b7db430fa7bfa66a3bcb2623f'/>
<id>urn:sha1:5777a555f60b780b7db430fa7bfa66a3bcb2623f</id>
<content type='text'>
Introduce `bridge` proc-macro crate with `#[export]` attribute that conditionally applies `wasm_bindgen` for WASM builds, and `time` crate porting all timecode/frame utilities from TypeScript to Rust.
</content>
</entry>
<entry>
<title>feat: init desktop app</title>
<updated>2026-03-29T13:58:42Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-03-27T20:15:00Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=d862e56e34ad1a76836cc2716b473a61879f2205'/>
<id>urn:sha1:d862e56e34ad1a76836cc2716b473a61879f2205</id>
<content type='text'>
</content>
</entry>
</feed>
