<feed xmlns='http://www.w3.org/2005/Atom'>
<title>opencut/apps/web/src/lib/timeline/index.ts, branch rust-rewrite</title>
<subtitle></subtitle>
<id>http://git.cashmere.rs/opencut/atom/apps/web/src/lib/timeline/index.ts?h=rust-rewrite</id>
<link rel='self' href='http://git.cashmere.rs/opencut/atom/apps/web/src/lib/timeline/index.ts?h=rust-rewrite'/>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/'/>
<updated>2026-04-20T09:31:17Z</updated>
<entry>
<title>refactor: restructure files to their domains,  new preview overlay system, and dep graph</title>
<updated>2026-04-20T09:31:17Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-20T09:31:17Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=3e89d2998588f8e35c524e523ba2ee853f0f6475'/>
<id>urn:sha1:3e89d2998588f8e35c524e523ba2ee853f0f6475</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor: structured track layout per scene</title>
<updated>2026-04-07T02:41:27Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-07T02:41:27Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=cbd1b8212370c67b34a70dccd21bd82de72fead2'/>
<id>urn:sha1:cbd1b8212370c67b34a70dccd21bd82de72fead2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor: unify element updates into pipeline and centralize ripple</title>
<updated>2026-04-05T22:02:23Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-05T22:02:23Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=44d8c4c8764d49a8e8d0ae713432c07f07cb7597'/>
<id>urn:sha1:44d8c4c8764d49a8e8d0ae713432c07f07cb7597</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor: split constants by domain and isolate timeline panel from core</title>
<updated>2026-04-01T17:27:49Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-01T17:27:49Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=bd9ec023eefc4b5d26fa8b66c4338e97104f0f96'/>
<id>urn:sha1:bd9ec023eefc4b5d26fa8b66c4338e97104f0f96</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: separate audio from elements</title>
<updated>2026-03-31T21:23:36Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-03-31T21:23:36Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=f1d5932c54178c4f8eac61d3d3e0e4a30101780f'/>
<id>urn:sha1:f1d5932c54178c4f8eac61d3d3e0e4a30101780f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: normalize line endings</title>
<updated>2026-03-29T13:56:48Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-03-26T23:55:15Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=4d127a038bf768eded68aae3cfa5c1b12241bdac'/>
<id>urn:sha1:4d127a038bf768eded68aae3cfa5c1b12241bdac</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: masks, properties refactor, shaders, storage migrations, and more</title>
<updated>2026-03-29T13:48:22Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-03-25T15:47:22Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=8db3bead13441a5882d8689dfc6a9f09c82375d9'/>
<id>urn:sha1:8db3bead13441a5882d8689dfc6a9f09c82375d9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge branch 'dev' into ripple-editing</title>
<updated>2026-03-01T00:32:09Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-03-01T00:32:09Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=5e7c27f542e94ffee5d2106ce318b6f43cc7e738'/>
<id>urn:sha1:5e7c27f542e94ffee5d2106ce318b6f43cc7e738</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: implement keyframe animation system</title>
<updated>2026-02-27T15:33:57Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-02-27T15:33:57Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=49426f19cd8eaed7cf6c47999b66fee7ee637a56'/>
<id>urn:sha1:49426f19cd8eaed7cf6c47999b66fee7ee637a56</id>
<content type='text'>
Add keyframe support for transform, opacity, and volume properties.
Includes animation engine (interpolation, mutations, resolvers), timeline
markers with selection/snapping, properties panel toggles, keyframe-aware
renderer, and full undo/redo command support.

Also refactor element command constructors to object params, extract
timeline pixel math to pixel-utils.ts, and update cursor rules.
</content>
</entry>
<entry>
<title>feat: basic ripple editing</title>
<updated>2026-02-23T06:09:26Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-02-23T06:09:26Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=744419469da403be57d30b5b19f6b43246caa57d'/>
<id>urn:sha1:744419469da403be57d30b5b19f6b43246caa57d</id>
<content type='text'>
</content>
</entry>
</feed>
