<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Shayan</title>
    <description>The latest articles on DEV Community by Shayan (@codeideal).</description>
    <link>https://dev.to/codeideal</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3259876%2F4dad300e-95c9-4bcc-8ad1-bfe6bf0568a0.jpeg</url>
      <title>DEV Community: Shayan</title>
      <link>https://dev.to/codeideal</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/codeideal"/>
    <language>en</language>
    <item>
      <title>After Effects, but inside a browser tab (free, no install)</title>
      <dc:creator>Shayan</dc:creator>
      <pubDate>Sun, 25 Oct 2026 00:37:12 +0000</pubDate>
      <link>https://dev.to/atomcut/after-effects-but-inside-a-browser-tab-free-no-install-3o0h</link>
      <guid>https://dev.to/atomcut/after-effects-but-inside-a-browser-tab-free-no-install-3o0h</guid>
      <description>&lt;p&gt;AtomCut is a free motion design and video studio that runs in a browser tab. If you know After Effects, you already know most of it: compositions, keyframes, a graph editor, expressions, tracking, rigs, 3D. The difference is where it lives. You open a URL and start keyframing. No installer, no account, no Creative Cloud updater asking to restart.&lt;/p&gt;

&lt;p&gt;This post maps the After Effects workflow onto AtomCut, tool by tool, with screenshots from the editor as it is today (version 4.17). It also lists where After Effects is still the better choice, because there are real ones.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqv4xhp0u9neykskj2mnf.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqv4xhp0u9neykskj2mnf.webp" alt="The AtomCut editor: a video of a green field with a stone cabin, a green tracking box locked on the cabin, a yellow label reading Pinned to the cabin beside it, the Track tab on the right showing the Cabin tracker at 97% confidence, and the timeline below." width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;A tracker on the cabin (97% confidence across the clip), and a label riding it. The green strip under the clip on the timeline is the tracked span.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What does each After Effects tool map to?
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;In After Effects&lt;/th&gt;
&lt;th&gt;In AtomCut&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Composition, precomp&lt;/td&gt;
&lt;td&gt;Frame, nested comp&lt;/td&gt;
&lt;td&gt;Frames sit side by side on an infinite canvas, like artboards in Figma. Nest one inside another and it plays as a clip.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Graph Editor&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Curves&lt;/strong&gt; panel&lt;/td&gt;
&lt;td&gt;Speed and value curves, eased handles, every keyed property in one view.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hold keyframe&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Hold&lt;/strong&gt; easing&lt;/td&gt;
&lt;td&gt;Drawn as a step in Curves, and kept as a hold in Lottie.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Expressions&lt;/td&gt;
&lt;td&gt;Expressions in any field&lt;/td&gt;
&lt;td&gt;Type &lt;code&gt;wiggle(2, 10)&lt;/code&gt; or &lt;code&gt;layer("Title").x + 40&lt;/code&gt; into a field and press Enter.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tracker, Mocha&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Track&lt;/strong&gt; tab&lt;/td&gt;
&lt;td&gt;Point, Object, Surface (corner pin) or Outline.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3D Camera Tracker&lt;/td&gt;
&lt;td&gt;Camera track&lt;/td&gt;
&lt;td&gt;Solves the move and the lens, then builds a 3D scene behind your footage.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rotobrush for "text behind a person"&lt;/td&gt;
&lt;td&gt;Depth track + &lt;strong&gt;Behind&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;No masks to paint. More on this below.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Duik, RubberHose&lt;/td&gt;
&lt;td&gt;Bones, IK, Character tab&lt;/td&gt;
&lt;td&gt;Rigging, poses, blinking and lip sync are built in.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Newton (plugin)&lt;/td&gt;
&lt;td&gt;Physics&lt;/td&gt;
&lt;td&gt;Gravity, collisions, joints, forces. Built in.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Element 3D, Cinema 4D Lite&lt;/td&gt;
&lt;td&gt;3D worlds&lt;/td&gt;
&lt;td&gt;Meshes, lights, materials, extruded text, sculpting.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bodymovin&lt;/td&gt;
&lt;td&gt;Lottie export&lt;/td&gt;
&lt;td&gt;With a fidelity report of anything that did not translate.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ExtendScript&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Scripts&lt;/strong&gt; panel&lt;/td&gt;
&lt;td&gt;Plain JavaScript: &lt;code&gt;await ac.layer.create({…})&lt;/code&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Most of these sit one click away from the layer you selected, in the tabs on the right: Design, Effects, Animate, Track, Physics, Sound.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is there a graph editor?
&lt;/h2&gt;

&lt;p&gt;Yes. Select a layer, open &lt;strong&gt;Curves&lt;/strong&gt; under the timeline, and every keyed property is drawn as a curve you can shape. Below, a title fades in, drops 100 px and settles from 82% to 100% scale. Three properties, three easings, one view.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5b2lg2x5df7u6gu87t6n.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5b2lg2x5df7u6gu87t6n.webp" alt="AtomCut with the title SUMMIT over a mountain sunset, the title selected, and the Curves panel below showing three eased curves for Scale, Y and Opacity crossing over the first two seconds." width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Curves: Scale, Y and Opacity keyed on one title, each with its own ease.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Easings have names you can type (&lt;code&gt;ease-out-expo&lt;/code&gt;, &lt;code&gt;ease-in-out-back&lt;/code&gt;, &lt;code&gt;cubic-bezier(…)&lt;/code&gt;), so a curve you liked is a string you can copy into another project. Record mode keys every edit you make while it is on, the way After Effects' stopwatch does once you have clicked it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Can I write expressions?
&lt;/h2&gt;

&lt;p&gt;Every field that holds a value can hold a formula instead. Click a field, type &lt;code&gt;wiggle(2, 10)&lt;/code&gt; or &lt;code&gt;#layer.rotation * 2&lt;/code&gt;, press Enter, and it turns purple. Other layers are read by name: &lt;code&gt;layer("Title").x + 40&lt;/code&gt; keeps one layer 40 px to the right of another.&lt;/p&gt;

&lt;p&gt;Two details After Effects users tend to like. Expressions are typed (number, vector, colour, text, layer), so a formula that returns the wrong kind of value shows an error while you type, not at render time. And if a formula breaks, the field keeps its last good value and turns red instead of throwing your layer to 0,0.&lt;/p&gt;

&lt;p&gt;A tracker is readable the same way: &lt;code&gt;track("Cabin").position&lt;/code&gt; is the cabin's position on the current frame. The same values are available on the node board, if you think in wires.&lt;/p&gt;

&lt;h2&gt;
  
  
  How does tracking work?
&lt;/h2&gt;

&lt;p&gt;Open the &lt;strong&gt;Track&lt;/strong&gt; tab on a video or picture and draw around what you want to follow: a box, an oval, a polygon or a pen outline. It tracks both directions from that frame while you watch the outline ride the footage. Then pick what to do with it: stick a layer on it, stabilize the shot, blur or grade a moving region, or read it in an expression.&lt;/p&gt;

&lt;p&gt;The screenshot at the top is that whole loop. The cabin was drawn once on the first frame; the label follows it through the camera move; the Track tab says 97% confidence and lists the label under &lt;strong&gt;Used by&lt;/strong&gt;. When a track drifts, drag the outline back onto the subject on that one frame. The stretch around your fix re-tracks by itself and lands on it, and the fix survives every later re-track.&lt;/p&gt;

&lt;p&gt;Trackers belong to the footage, not the clip. Split it, trim it, speed it up, and the track stays glued to the picture. Drop the same file into another project and it is already tracked.&lt;/p&gt;

&lt;p&gt;For shots where the camera itself moves, a &lt;strong&gt;Camera&lt;/strong&gt; track solves where the camera went and what lens it used, and &lt;strong&gt;Make 3D scene&lt;/strong&gt; turns that into a 3D world with your footage behind it. Click three points on the floor to level it, then stand a title on a wall or a table and it stays put as the camera moves. It needs real parallax over rigid scenery: a locked-off pan solves as a tripod shot, and a frame full of moving water will not solve.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do I put text behind a person or a mountain?
&lt;/h2&gt;

&lt;p&gt;In After Effects this is a rotoscoping job: paint a mask on the subject, refine it, fix the frames where it slips. In AtomCut, add a &lt;strong&gt;Depth&lt;/strong&gt; track to the footage. Every pixel gets a distance from the lens, worked out on your own machine (on the GPU when there is one). Then add &lt;strong&gt;Behind&lt;/strong&gt; to the title, and whatever stands in front of it in the shot covers it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu08riyjfscsfqwxahd8s.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu08riyjfscsfqwxahd8s.webp" alt="AtomCut with the title SUMMIT selected over a sunset mountain shot; the nearest peak covers the bottom of the letters U and M. The Effects tab on the right shows one effect card named Behind." width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;One effect card, Behind, on the title. The peak in front covers the letters; nothing was masked by hand.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The cover of this post is that frame, exported. The same depth drives three more things: &lt;strong&gt;Fog&lt;/strong&gt; that thickens with distance, &lt;strong&gt;Lens blur&lt;/strong&gt; that focuses at a depth (key the focus to rack it), and grade windows that select a band of depth, so you can cool the background and lift the subject without drawing anything.&lt;/p&gt;

&lt;p&gt;The depth model downloads once, the first time you use it (60 to 130 MB depending on your machine), and is kept on the device across app updates. After that it works offline. On an M1 MacBook it took about three minutes for an 8-second 1080p clip.&lt;/p&gt;

&lt;h2&gt;
  
  
  What about characters, physics and 3D?
&lt;/h2&gt;

&lt;p&gt;These are the places where After Effects users usually buy plugins, and where AtomCut ships the feature in the box.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe8ccyu49ow036p4gi3ki.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe8ccyu49ow036p4gi3ki.webp" alt="The AtomCut editor with a physics scene: a title that has fallen onto a shelf with shapes piled around it, the Physics tab open for the selected title, and the timeline below." width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Physics on a title: it falls, lands on the shelf, and the shapes pile up around it. The Physics tab holds body, bounce, friction and forces.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Physics.&lt;/strong&gt; Give any layer a body in the &lt;strong&gt;Physics&lt;/strong&gt; tab and it drops, lands and settles. A star lands on its points and a word on its letters. Every frame is a function of time, so you can scrub backwards through a collision.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Characters.&lt;/strong&gt; Draw bones through your art, and dragging a hand pulls the arm along (IK). The Character tab holds poses for mouths, eyes, brows and hands. Give a character a voice clip and its mouth follows; fix one syllable by hand and the fix stays.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;3D worlds.&lt;/strong&gt; A world is a comp with depth: meshes, lights, materials, extruded text, sculpting and drawing in 3D. It renders on the same timeline as everything else.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5v0hj2uysfzihlvo02l2.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5v0hj2uysfzihlvo02l2.webp" alt="Five frames of an orange character with a glowing antenna: the antenna trails behind a hop, bends and springs back upright." width="800" height="267"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;A bone with Follow on: the antenna trails the hop and settles by itself. Five frames from a render.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Where is After Effects still the better tool?
&lt;/h2&gt;

&lt;p&gt;Honestly, in several places:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Heavy footage.&lt;/strong&gt; A browser tab works within the browser's memory. Long 4K timelines with many layers of video are After Effects (or DaVinci) territory. AtomCut is built for motion graphics, social video and UI animation, not for finishing a feature film.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The plugin and template ecosystem.&lt;/strong&gt; Twenty years of Trapcode, Element and marketplace templates do not exist here.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The pipeline.&lt;/strong&gt; If your studio hands &lt;code&gt;.aep&lt;/code&gt; files around, AtomCut does not open them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tutorials.&lt;/strong&gt; Every After Effects problem has a ten-year-old YouTube video. AtomCut has its &lt;a href="https://atomcut.net/docs" rel="noopener noreferrer"&gt;docs&lt;/a&gt; and a changelog.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;The free editor has every tool, but exports video up to 720p. Full HD and 4K, transparent video and the AI agent link are in Pro: $29 a year with a 7-day free trial, or $59 once for the first 300 buyers.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Can an AI agent drive it?
&lt;/h2&gt;

&lt;p&gt;Yes, and this part has no After Effects equivalent yet. AtomCut speaks MCP, so Claude Code or any MCP client can build scenes, track footage, rig characters and render frames in the editor while you watch, each request one undo step. Every screenshot in this post came out of that same scripting surface: the scenes were built by script in a real editor, then captured. That is a Pro feature; the Scripts panel, where you write the JavaScript yourself, is free.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Is AtomCut a free After Effects alternative?&lt;/strong&gt; The editor is free with no account and no watermark, and exports up to 720p. Pro adds HD and 4K export for $29 a year (7-day free trial) or $59 once.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does it open After Effects projects?&lt;/strong&gt; No. It exports MP4, WebM, GIF, PNG sequences, SVG, Lottie and PDF.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does it work offline?&lt;/strong&gt; Yes. Once the editor has loaded on a device, it keeps working without a connection, and there are desktop apps for macOS, Windows and Linux.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can it do motion tracking and text behind a subject?&lt;/strong&gt; Yes: point, object, surface and outline tracking, a camera solve, and depth-based Behind, Fog and Lens blur. See the &lt;a href="https://atomcut.net/docs/effects/tracking" rel="noopener noreferrer"&gt;tracking docs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does it have expressions like After Effects?&lt;/strong&gt; Yes, in any field, including &lt;code&gt;wiggle()&lt;/code&gt;. See &lt;a href="https://atomcut.net/docs/expressions" rel="noopener noreferrer"&gt;expressions&lt;/a&gt; and the full &lt;a href="https://atomcut.net/#everything" rel="noopener noreferrer"&gt;capability list&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open AtomCut in a tab:&lt;/strong&gt; &lt;a href="https://app.atomcut.net" rel="noopener noreferrer"&gt;app.atomcut.net&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>showdev</category>
      <category>javascript</category>
      <category>design</category>
    </item>
    <item>
      <title>Pikimov vs AtomCut: two free browser motion studios compared (2026)</title>
      <dc:creator>Shayan</dc:creator>
      <pubDate>Mon, 12 Oct 2026 13:42:18 +0000</pubDate>
      <link>https://dev.to/atomcut/pikimov-vs-atomcut-two-free-browser-motion-studios-compared-2026-3flg</link>
      <guid>https://dev.to/atomcut/pikimov-vs-atomcut-two-free-browser-motion-studios-compared-2026-3flg</guid>
      <description>&lt;p&gt;Pikimov and AtomCut are both motion design and video editors that run in a browser tab, and both let you start without an account. Pikimov is the simpler deal: free forever, up to 4K, with After Effects-style expressions and a particle system. AtomCut is the wider tool: vector drawing and brushes, physics, character rigs, 3D worlds and a sound library, with exports above 720p behind a $29 a year Pro plan.&lt;/p&gt;

&lt;p&gt;We make AtomCut, so read this with that in mind. Everything below about Pikimov comes from &lt;a href="https://pikimov.com" rel="noopener noreferrer"&gt;pikimov.com&lt;/a&gt; and &lt;a href="https://docs.pikimov.com" rel="noopener noreferrer"&gt;docs.pikimov.com&lt;/a&gt;, read on October 12, 2026. Where its documentation is silent, the table says "not documented" rather than guessing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftzo7aybjsj9i2xy0j96a.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftzo7aybjsj9i2xy0j96a.webp" alt="The AtomCut editor with a physics scene: a title that has fallen onto a shelf with shapes piled around it, the Physics tab open for the selected title, and the timeline below." width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The editor: canvas, the Physics tab for the selected title (body, bounce, friction, forces, gravity) and the timeline. A real capture.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How do they compare at a glance?
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Pikimov&lt;/th&gt;
&lt;th&gt;AtomCut&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Price&lt;/td&gt;
&lt;td&gt;Free forever, no sign-up, "no paywall"&lt;/td&gt;
&lt;td&gt;Free up to 720p export, no watermark. Pro: $29 a year (7-day trial) or $59 once for the first 300&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Export size&lt;/td&gt;
&lt;td&gt;Up to 4K&lt;/td&gt;
&lt;td&gt;720p free; full HD, 4K and transparent on Pro&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Where it runs&lt;/td&gt;
&lt;td&gt;Chrome, Edge and Opera. Not Firefox or Safari, no iPad&lt;/td&gt;
&lt;td&gt;Browser, plus a desktop app for macOS, Windows and Linux; touch and tablet supported&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Offline&lt;/td&gt;
&lt;td&gt;A standalone app, for Patreon supporters&lt;/td&gt;
&lt;td&gt;Works offline; saves locally&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Editing&lt;/td&gt;
&lt;td&gt;Video editor, 2D compositing, 3D compositing as three editors&lt;/td&gt;
&lt;td&gt;One document: canvas, multi-track timeline, nested comps&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Animation&lt;/td&gt;
&lt;td&gt;Keyframes, AE-syntax JavaScript expressions, motion tracking, rotoscoping&lt;/td&gt;
&lt;td&gt;Keyframes on anything, curve editor, expressions and node drivers, contour tracking, shape morphing, flipbook&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Drawing&lt;/td&gt;
&lt;td&gt;Not documented&lt;/td&gt;
&lt;td&gt;Bézier pen, 43 pressure brushes, simulated watercolour&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Particles&lt;/td&gt;
&lt;td&gt;A generator with presets&lt;/td&gt;
&lt;td&gt;A 3D &lt;code&gt;particles&lt;/code&gt; modifier; no 2D emitter or presets yet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Physics&lt;/td&gt;
&lt;td&gt;Not documented&lt;/td&gt;
&lt;td&gt;Any layer, in 2D and 3D; fields, joints; exact on every frame&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Characters&lt;/td&gt;
&lt;td&gt;Not documented&lt;/td&gt;
&lt;td&gt;Rigs with IK, weight painting, spring bones&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3D&lt;/td&gt;
&lt;td&gt;XYZ transforms and a basic camera; GLB models can be imported&lt;/td&gt;
&lt;td&gt;Worlds with meshes, lights, cameras, materials, modifiers, extrusion; glTF/USDZ/OBJ/STL export&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sound&lt;/td&gt;
&lt;td&gt;Audio import and editing, details not documented&lt;/td&gt;
&lt;td&gt;4,555 CC0 effects, per-glyph typing sound, EQ/reverb/compressor stack&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI&lt;/td&gt;
&lt;td&gt;Deliberately none&lt;/td&gt;
&lt;td&gt;Optional: a built-in agent and MCP link (Pro), Scripts panel (free)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Where does Pikimov win?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Price.&lt;/strong&gt; There is nothing to pay for and nothing capping 4K. AtomCut's free tier stops at 720p. If you export social video at 1080p or above and never touch drawing or physics, Pikimov costs you less than the $29 a year Pro would.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The After Effects shape.&lt;/strong&gt; Its documentation describes JavaScript expressions "using After Effects syntax", a particle system with presets, automatic motion tracking and rotoscoping. If your hands already know After Effects, it will feel like home faster than AtomCut does. AtomCut's particle story is weaker: the &lt;code&gt;particles&lt;/code&gt; and &lt;code&gt;explode&lt;/code&gt; modifiers work on 3D shapes, but there is no 2D emitter and no confetti-or-sparks preset shelf.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Its stance on AI.&lt;/strong&gt; Pikimov's site says it is not bloated with AI and that projects are not used for training. If you want none of it, that is a clean answer. AtomCut's agent is optional, but it is there.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where does AtomCut win?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Drawing and hand-made motion.&lt;/strong&gt; AtomCut has a Bézier pen, 43 pressure-sensitive brushes, a watercolour that bleeds and dries, a frame-by-frame flipbook with onion skinning, and shape morphing. Pikimov's documentation does not describe a drawing toolset.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Physics and rigs.&lt;/strong&gt; Right-click a layer, choose Physics › Falls, and it drops and lands on its real outline. Rigs bend art with IK and weight painting, and spring bones trail and settle. Every frame is exact, so you can scrub and export with nothing to bake.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjoszh9e0gtds0o6xfhyw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjoszh9e0gtds0o6xfhyw.png" alt="Five frames of a glowing 3D number 4 with shapes falling and landing around it, rendered in AtomCut." width="800" height="191"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Physics in AtomCut: a 3D 4 and falling shapes, five frames from a render.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3D that is more than a camera.&lt;/strong&gt; Pikimov's 3D compositions give you X, Y and Z transforms and a basic camera, which covers parallax and card flips. AtomCut's worlds add meshes, lights, materials, modifiers, extruded text with bevels, and an edit mode. It is still not Blender, and does not try to be.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyu9n8o4uf9i9ofg35owv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyu9n8o4uf9i9ofg35owv.png" alt="The AtomCut mark rendered five ways: glow, boil, lightning, pixelate, glitch." width="799" height="213"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Five of AtomCut&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reach.&lt;/strong&gt; AtomCut works with touch and on tablets, installs as a desktop app on macOS, Windows and Linux, and exports Lottie and SVG with a fidelity report. Pikimov's FAQ says it does not work on Safari, Firefox or iPad.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which one should you pick?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pick Pikimov&lt;/strong&gt; if you want zero cost to 4K, an After Effects-style workflow with expressions, and a particle generator today.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pick AtomCut&lt;/strong&gt; if your work involves drawing, characters, physics, 3D scenes, sound design, Lottie or SVG export, or you need to work on a tablet or Firefox/Safari.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use both&lt;/strong&gt; if you like. Neither locks your files in a cloud: both work locally in the browser.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Where AtomCut falls short of what this post praises Pikimov for: the free tier caps export at 720p, there is no particle preset shelf, and the project is newer. Where we can't judge Pikimov: we did not run its editors side by side with ours on identical footage, so this compares documented features, not render speed or stability.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Is Pikimov really free?&lt;/strong&gt; According to its FAQ, yes: "free forever", with optional support on Patreon, and a desktop app for Patreon supporters.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does AtomCut need an account?&lt;/strong&gt; No. You open it and work; Pro uses a licence key.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Which is better for After Effects users?&lt;/strong&gt; Pikimov, for the interface and expression syntax. AtomCut for people who want drawing, physics and 3D in the same project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can either export Lottie?&lt;/strong&gt; AtomCut can, with a fidelity report that lists what could not be carried over. The Pikimov documentation we read does not list Lottie.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open the studio:&lt;/strong&gt; &lt;a href="https://app.atomcut.net" rel="noopener noreferrer"&gt;app.atomcut.net&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>animation</category>
      <category>showdev</category>
      <category>comparison</category>
    </item>
    <item>
      <title>Physics and 3D worlds in a free browser motion studio (AtomCut 4)</title>
      <dc:creator>Shayan</dc:creator>
      <pubDate>Mon, 12 Oct 2026 12:15:33 +0000</pubDate>
      <link>https://dev.to/atomcut/physics-and-3d-worlds-in-a-free-browser-motion-studio-atomcut-4-3591</link>
      <guid>https://dev.to/atomcut/physics-and-3d-worlds-in-a-free-browser-motion-studio-atomcut-4-3591</guid>
      <description>&lt;p&gt;AtomCut is a motion design and video studio that runs in a browser tab: an infinite canvas, a multi-track timeline, no account, no watermark. Version 4 adds the two things people kept asking where to find, a physics engine and real 3D worlds. This is the tour for someone who has never opened it.&lt;/p&gt;

&lt;p&gt;Everything you see below is a frame rendered by AtomCut. They come from the launch film for version 4, which Claude built scene by scene through AtomCut's agent link. We'll get to that.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fusvk67iuule4wlzvq0ea.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fusvk67iuule4wlzvq0ea.webp" alt="The AtomCut editor with a physics scene: a title that has fallen onto a shelf with shapes piled around it, the Physics tab open for the selected title, and the timeline below." width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The editor: canvas, the Physics tab for the selected title (body, bounce, friction, forces, gravity) and the timeline. A real capture.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What does physics do to a title?
&lt;/h2&gt;

&lt;p&gt;It drops it on the floor. Right-click any layer, choose &lt;strong&gt;Physics › Falls&lt;/strong&gt;, and it falls from where it is, lands on the bottom edge of the comp and settles. Text, a logo, a sticker, a 3D mesh: any layer.&lt;/p&gt;

&lt;p&gt;The part worth knowing is &lt;em&gt;what&lt;/em&gt; it lands on. A rectangle is a box, but a star lands on its points, a word on its letters, a sticker on the edge of its picture. The collider is drawn dashed on the canvas so you can see what it will hit before it hits.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkdz0j8njt4h0k8z87zot.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkdz0j8njt4h0k8z87zot.png" alt="A 3D 4 and a pile of shapes, under two seconds, rendered in AtomCut." width="800" height="191"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;A 3D 4 and a pile of shapes, under two seconds, rendered in AtomCut. (On the blog version you can drag across this to scrub it.)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Scrubbing works because a physics frame in AtomCut is a function of time. You can ask for any frame in any order: scrub, loop, jump to the end, export. Nothing is baked, and there is no "bake" button hiding in a menu. Edit anything and it re-runs from the start; the rest of the time every frame reads a stored result.&lt;/p&gt;

&lt;p&gt;Around the falling there is a small kit:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fixed&lt;/strong&gt; layers are shelves and ramps. &lt;strong&gt;Pushes&lt;/strong&gt; layers move by their own keyframes and shove whatever is in the way.&lt;/li&gt;
&lt;li&gt;Force fields live on their own layer: wind, vortex, attract, turbulence, drag. Aim one by turning it, key its strength, and a gust is two keyframes.&lt;/li&gt;
&lt;li&gt;Joints hold a body to the comp or to another body: pin, weld, rope, spring. A hanging sign is a pin and a swing.&lt;/li&gt;
&lt;li&gt;A layer that is keyed moving when physics starts keeps moving. Key a throw, start physics at its end, and it flies on.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each comp has its own simulation settings. Gravity 981 is Earth; set it to 0 and everything floats, which is how the planets below stay up.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a 3D world, and why is it a comp?
&lt;/h2&gt;

&lt;p&gt;A world is a composition like any other, except it contains meshes, a camera and lights instead of flat layers, and every one of them is keyed on the same timeline as everything else. Drop a world into a flat comp and it renders through its live camera, so a 3D title can sit under 2D captions without leaving the page.&lt;/p&gt;

&lt;p&gt;Any flat layer can stand in a world: text, shapes, images, video, other comps. Text gets real thickness with bevels. Meshes get materials (gold, chrome, glass, neon, toon), modifiers (subdivision, mirror, array, bend, twist, wave, displace), and an edit mode with extrude, inset, loop cut and knife. The default keymap is Blender's, so the shortcuts you already know work.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3jwwuqrldlvlinf0ovcq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3jwwuqrldlvlinf0ovcq.png" alt="A solar system in orbit. A point force at the sun, a starting velocity per planet, no position keyframes." width="799" height="222"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;A solar system in orbit. A point force at the sun, a starting velocity per planet, no position keyframes. (On the blog version you can drag across this to scrub it.)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Those orbits are physics, not animation. A point force sits at the sun, gravity is switched off, and each planet starts with a velocity that bends into a circle. It is the same Physics tab as the falling 4, one dimension up.&lt;/p&gt;

&lt;p&gt;Worlds export as glTF/GLB with their motion, plus USDZ, OBJ, STL and PLY, so a scene you build here can leave for a game engine, a viewer, or a 3D printer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Can a drawing have bones?
&lt;/h2&gt;

&lt;p&gt;Yes, and they obey physics too. A rig is bones that bend your art, with IK, controls that have limits, and weight painting. Switches handle eyes, mouths and hands, and blinks run on their own.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe9gaydpjnbd9nv1fpdxi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe9gaydpjnbd9nv1fpdxi.png" alt="Five frames of an orange character with a glowing antenna: the antenna trails behind a hop, bends, and springs back upright." width="800" height="267"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Five moments of one hop. The antenna is a bone with Follow at 0.6, so it trails and settles by itself.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Physics reaches through the bones. Give a piece a body and it swings from its joint: a clock hand let go, a hanging lamp, a tail. Make the whole rig fall and the character tumbles with its limbs flopping. A joint's rotation limits are its stops, so a head can nod and never spin.&lt;/p&gt;

&lt;h2&gt;
  
  
  What else is in there?
&lt;/h2&gt;

&lt;p&gt;Most of it predates version 4, so here is the short version for anyone who arrives at 4.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Draw.&lt;/strong&gt; A Bézier pen, 43 pressure-sensitive brushes, and a watercolour that bleeds, granulates and dries on its own.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Morph.&lt;/strong&gt; One shape becomes another, keyframed like anything else.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Type.&lt;/strong&gt; Kinetic text looks previewed as the real animation, a sound per glyph, text on a path, and right-to-left and Arabic shaping that actually shapes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Edit.&lt;/strong&gt; A multi-track timeline with trims, ripples, transitions, speed ramps and nested comps. Groups behave like clips.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Effects.&lt;/strong&gt; 36 stackable, keyframeable effects: glow, lightning, glitch, liquid glass, halftone, film grain, and a colour page with node graphs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Libraries.&lt;/strong&gt; 337,000 open-source icons from 208 licence-checked sets, each of which can draw itself on, and 4,555 CC0 sound effects.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ship.&lt;/strong&gt; MP4, WebM, GIF, PNG sequences, PDF, SVG, and Lottie with a fidelity report.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0xxojcygg4kcjw0yvyh2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0xxojcygg4kcjw0yvyh2.png" alt="Five frames of an orange-pink shape morphing from a pentagon through a heart to a four-lobed flower." width="799" height="213"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Morph: pentagon, heart, flower. Same layer, keyframed geometry.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy8xky5zitkvspge6pd62.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy8xky5zitkvspge6pd62.png" alt="The AtomCut mark rendered five ways in a row: glowing, boiling, struck by lightning, pixelated and glitched." width="799" height="213"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;One logo, five effects from the stack: glow, boil, lightning, pixelate, glitch.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you are wondering whether it does a specific thing, ask the list. It is the same capability index as the landing page, so it can't promise anything the page doesn't.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does it do the thing you need?&lt;/strong&gt; The whole list, searchable, is on &lt;a href="https://atomcut.net/blog/atomcut-4-physics-and-3d-worlds" rel="noopener noreferrer"&gt;the blog version&lt;/a&gt; and on &lt;a href="https://atomcut.net" rel="noopener noreferrer"&gt;atomcut.net&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who drew the film?
&lt;/h2&gt;

&lt;p&gt;Claude did, through MCP. AtomCut exposes every command in the app to agents, so a chat model, or Claude Code in a terminal, can create layers, key them, run physics, render a frame and look at it. The launch film for version 4 was built that way, one generator script per scene. The small orange tool-call lines in the film's captions are the real calls that made the scene beneath them.&lt;/p&gt;

&lt;p&gt;That leaves three ways to make something in it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;By hand.&lt;/strong&gt; Draw it, key it, scrub it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;By script.&lt;/strong&gt; Version 4.2 added a Scripts panel where &lt;code&gt;await ac.layer.create({…})&lt;/code&gt; runs against your project and saves with it. A button copies a briefing for a chatbot (your comps, your media, every command, the real property names), so you can ask any model for a script, paste its answer, run it, and paste the error back. Run a file again and it replaces what it made last time. This part is in the free editor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;By agent.&lt;/strong&gt; The built-in agent, or Claude Code and other MCP clients, can run the commands directly, render a frame, look at it and fix it. That is the Pro part.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;AtomCut's 3D is a space for motion graphics: titles with depth, objects with physics, camera moves, a scene that composes with your 2D. It is not a Blender replacement: there is no sculpting and no path-traced rendering, and if you need those, Blender is the right tool.&lt;/p&gt;

&lt;p&gt;It also runs in a browser, so it has a browser's limits. A heavy 4K timeline will be slower than it would be in a native editor, and a world with particles and motion blur gets a time budget per frame instead of unlimited samples. A browser can also switch off 3D for a tab; AtomCut says so once and puts a Reload button where the world was, instead of flooding the console.&lt;/p&gt;

&lt;p&gt;Particles are the gap that stung us while making the film. The 3D &lt;code&gt;particles&lt;/code&gt; and &lt;code&gt;explode&lt;/code&gt; modifiers exist and carry a Big Bang well, but there is no 2D emitter in a flat comp, no confetti or sparks preset, and particles don't collide with bodies yet. It's on the roadmap, with no date.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What does it cost?
&lt;/h2&gt;

&lt;p&gt;Free: every tool, effect and panel, unlimited projects saved on your machine, no watermark, video export up to 720p. Pro is $29 a year with a seven-day trial, or $59 once for the first 300 buyers, and adds full HD and 4K export, transparent and per-layer export, and the AI agent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open the studio:&lt;/strong&gt; &lt;a href="https://app.atomcut.net" rel="noopener noreferrer"&gt;app.atomcut.net&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>animation</category>
      <category>showdev</category>
      <category>opensource</category>
    </item>
    <item>
      <title>AtomCut made its own intro using Opus 5.5 ( Launch Motion design )</title>
      <dc:creator>Shayan</dc:creator>
      <pubDate>Sun, 27 Sep 2026 21:29:46 +0000</pubDate>
      <link>https://dev.to/codeideal/atomcut-made-its-own-intro-using-opus-55-launch-motion-design--2pg9</link>
      <guid>https://dev.to/codeideal/atomcut-made-its-own-intro-using-opus-55-launch-motion-design--2pg9</guid>
      <description>&lt;p&gt;The motion design you see was entirely built using Opus 5.5 using atomcut MCP. &lt;br&gt;
and it has a great taste.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/7wp0C5wHW2M" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;This is one of those short articles, nothing more to say.&lt;br&gt;
Just amazed by the results and the fact that all is editable, and customizable.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>motion</category>
      <category>productivity</category>
    </item>
    <item>
      <title>The easiest way to add liquid glass to your videos</title>
      <dc:creator>Shayan</dc:creator>
      <pubDate>Mon, 21 Sep 2026 05:39:14 +0000</pubDate>
      <link>https://dev.to/codeideal/the-easiest-way-to-add-liquid-glass-to-your-videos-3efb</link>
      <guid>https://dev.to/codeideal/the-easiest-way-to-add-liquid-glass-to-your-videos-3efb</guid>
      <description>&lt;p&gt;Liquid glass looks great. It actually deserves to stay the design trend also in 2027.&lt;/p&gt;

&lt;p&gt;And getting them to your video is usually hard and needs extra work.&lt;/p&gt;

&lt;p&gt;So I added a built-in &lt;strong&gt;Glass UI&lt;/strong&gt; effect to &lt;a href="https://atomcut.net" rel="noopener noreferrer"&gt;AtomCut&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Draw your shape
&lt;/h3&gt;

&lt;p&gt;Create any shape on the canvas.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Add the Glass UI effect
&lt;/h3&gt;

&lt;p&gt;Inside the effects panel, add  &lt;strong&gt;Liquid Glass&lt;/strong&gt; effect.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Tweak it
&lt;/h3&gt;

&lt;p&gt;Adjust the settings until it looks right.&lt;/p&gt;

&lt;p&gt;That's it.&lt;/p&gt;

&lt;p&gt;You can animate the shape, change its position, scale, opacity, and the glass effect itself — just like any other layer in AtomCut.&lt;/p&gt;

&lt;p&gt;No After Effects setup.&lt;br&gt;
No plugins.&lt;br&gt;
No manually building the glass effect.&lt;/p&gt;

&lt;p&gt;Just draw → apply → animate → export.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://atomcut.net" rel="noopener noreferrer"&gt;Try it in AtomCut&lt;/a&gt; for free&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>uidesign</category>
      <category>marketing</category>
      <category>editing</category>
    </item>
    <item>
      <title>Figma-inspired video editing and motion design, done right</title>
      <dc:creator>Shayan</dc:creator>
      <pubDate>Sun, 20 Sep 2026 00:49:13 +0000</pubDate>
      <link>https://dev.to/codeideal/figma-inspired-video-editing-and-motion-design-done-right-5gcd</link>
      <guid>https://dev.to/codeideal/figma-inspired-video-editing-and-motion-design-done-right-5gcd</guid>
      <description>&lt;p&gt;A Figma-inspired video editor is one where the canvas is the place you work, the document is the truth, the browser is the runtime, and the free tier is the whole tool rather than a trial. AtomCut is that, with one addition Figma never made: a real multi-track timeline under the canvas, so a frame has a duration, a group is a clip, and every property you can see can be keyframed. It is free, needs no account, runs offline, and exports MP4, WebM, GIF, PNG sequences, SVG and Lottie. I built it alone over the last few months, and this post is about which Figma ideas survived contact with a time axis, which had to change, and what "done right" has cost so far.&lt;/p&gt;

&lt;p&gt;AtomCut is a free motion design and video editor that runs in the browser, at &lt;a href="https://app.atomcut.net" rel="noopener noreferrer"&gt;app.atomcut.net&lt;/a&gt;. I am not affiliated with Figma; it is the reference point because it is the one most designers and developers already have in their hands.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frulu9luww07eaaf158aw.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frulu9luww07eaaf158aw.webp" alt="The AtomCut studio: a Lucide rocket icon on a 1920×1080 frame on the canvas, the Plugins panel on the left, the inspector on the right, and the timeline below showing the Rocket group on Track 1 with its four path layers as rows" width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Canvas above, timeline below, one document underneath both. The rocket is a group; the group is a clip; its four paths are its rows.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  What Figma got right, and what a timeline does to each idea
&lt;/h2&gt;

&lt;p&gt;Figma's real invention was not the pen tool. It was a set of decisions about where work lives: on an infinite canvas with artboards, in one document, edited by direct manipulation, in a browser tab you can send to anyone. Everything below is one of those decisions, what it became in AtomCut, and the thing time does to it.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;In Figma&lt;/th&gt;
&lt;th&gt;In AtomCut&lt;/th&gt;
&lt;th&gt;What time adds&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Frames (artboards) on an infinite canvas&lt;/td&gt;
&lt;td&gt;Frames on an infinite canvas, &lt;code&gt;F&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;a frame carries a duration and its own frame rate; nest one inside another and it becomes a clip with speed, loop, ping-pong and reverse&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pages&lt;/td&gt;
&lt;td&gt;Pages, plus auto-managed Nested and Components pages&lt;/td&gt;
&lt;td&gt;pre-comps and component sources live on their own pages, so the page you design on stays clean&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Components and instances&lt;/td&gt;
&lt;td&gt;Components: a frame flagged as a shared source; an instance is a nested clip pointing at it&lt;/td&gt;
&lt;td&gt;⌥-drag, paste and duplicate make new instances; editing the source updates all of them at the current time; detaching deep-clones on purpose&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Variables&lt;/td&gt;
&lt;td&gt;Five typed variables: color, number, fontFamily, fontWeight, string; bind any field&lt;/td&gt;
&lt;td&gt;a variable shares one value across layers; a keyframe animates one value over time; they are different axes and both work on the same field&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Auto layout&lt;/td&gt;
&lt;td&gt;Select what you already arranged, press &lt;code&gt;⇧A&lt;/code&gt;; the row, column or grid you made becomes the rule, gap included&lt;/td&gt;
&lt;td&gt;gap, padding and alignment are keyframeable, so a layout can widen over time like a shape changes colour&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fills and strokes as paint lists&lt;/td&gt;
&lt;td&gt;Paint lists, solid and gradient, dashes, caps, joins&lt;/td&gt;
&lt;td&gt;every stop keyframes; a stroke can be trimmed along its length over time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Boolean operations&lt;/td&gt;
&lt;td&gt;Composite groups: union, subtract, intersect, mask, as a mode on the group you already have&lt;/td&gt;
&lt;td&gt;the group is also a clip, so the boolean result can be trimmed, faded and moved as one thing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Crop-mode image fill&lt;/td&gt;
&lt;td&gt;A cropped layer has two transforms: the window and the picture inside it&lt;/td&gt;
&lt;td&gt;you can pan the footage inside a nailed-down frame, and the two never fight between keyframes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Plugins&lt;/td&gt;
&lt;td&gt;Sandboxed plugins with a typed API; install from a &lt;code&gt;.zip&lt;/code&gt; under Plugins → Manage plugins…&lt;/td&gt;
&lt;td&gt;the built-in Icons, Waveform Visualizer and LipSync Studio are plugins, and they insert ordinary clips&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multiplayer&lt;/td&gt;
&lt;td&gt;Not yet&lt;/td&gt;
&lt;td&gt;this is the gap; more below&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The pattern in the right column is the whole design. Nothing in the timeline is a special case bolted onto the canvas; every canvas idea kept its shape and gained a time dimension.&lt;/p&gt;
&lt;h2&gt;
  
  
  Where Figma stops: a canvas has no time axis
&lt;/h2&gt;

&lt;p&gt;Every browser tool for motion I have used picks a side. Canvas-first tools (Jitter, Fable, Figma's own prototype transitions) have a stage you can draw on and a thin timeline. Video-first tools (CapCut, Clipchamp, Canva's video mode) have a timeline and no pen, no boolean ops, no keyframes on arbitrary properties. Both are good at what they chose. Neither lets you draw a lower third with a pen tool and then ripple-trim it against a talking-head clip in the same window.&lt;/p&gt;

&lt;p&gt;AtomCut's one structural bet is that the two halves belong together: canvas above, an NLE below. The timeline is a proper one, not a keyframe strip. Tracks are unified channels, so any clip rides any lane. Drag a clip into its neighbour to ripple or overwrite. Grab the seam between two clips to roll the edit. Link clips so they trim and delete together, the DaVinci way. Split with the razor and the split is keyframe-aware, so the curve is continuous across the cut. Audio shows real decoded waveforms and carries its own effect stack.&lt;/p&gt;

&lt;p&gt;None of that is new to video editors. What is new is what sits above it: the same frame that plays in the timeline is an artboard you can pen-edit, auto-layout and turn into a component.&lt;/p&gt;
&lt;h2&gt;
  
  
  A group is a clip, and the row is the container
&lt;/h2&gt;

&lt;p&gt;The place where "Figma idea meets timeline" is most visible is grouping. In Figma a group is a folder in the layers panel. In a video editor a group is usually a pre-comp: a separate composition you drill into, with its own timeline you cannot see next to the parent's.&lt;/p&gt;

&lt;p&gt;In AtomCut a group is a clip, exactly like any other, that happens to hold rows of its own. It sits on an ordinary lane of its parent, at any z. Open it and its rows appear nested under its bar, in the same timeline, at the same zoom. Because it is a clip it carries what every clip carries: transform, paint, effects, opacity, blend mode, feather, an in and an out animation, on top of whatever its members carry.&lt;/p&gt;

&lt;p&gt;Its span is a window, not a container that owns its children's time. Trim the group's edge and members past the edge are hidden, never retimed; trim it back out and they reappear where they were. Drop any clip onto a group and it joins. Drag a member past the group's edge and it lifts out onto its own row. A clip is in a group because it sits on one of that group's rows; there is no &lt;code&gt;clip.groupId&lt;/code&gt; field anywhere, so moving a clip onto a row is moving it into the group, and nothing ever needs compacting.&lt;/p&gt;

&lt;p&gt;This is also what an icon becomes. Drop a Lucide rocket from the built-in icon search and it lands as a group of four path layers. Turn on Draw On and the outline inks itself in over 900 ms, one path after another, in the order it was drawn. The group is the clip you trim; the paths are the rows you keyframe.&lt;/p&gt;
&lt;h2&gt;
  
  
  "Done right" means one document, evaluated as a function of time
&lt;/h2&gt;

&lt;p&gt;Here is the engineering under the claim, because "done right" is cheap to type.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The document is the product.&lt;/strong&gt; Everything a project is (frames, layers, paints, effects, keyframes, sounds, captions, variables, node graphs, motion tracks) lives in one zod-validated JSON document, &lt;code&gt;AtomCutDocument&lt;/code&gt;, currently at schema version 75. Every migration up to it still runs on load, so a file saved by an older build still opens. Nothing editor-specific leaks into the document; the web editor renders it, and a future native plugin could rebuild it from the same file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="err"&gt;├──&lt;/span&gt; &lt;span class="nx"&gt;durationMs&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;stageBackground&lt;/span&gt;      &lt;span class="c1"&gt;// one shared timeline for all frames&lt;/span&gt;
&lt;span class="err"&gt;├──&lt;/span&gt; &lt;span class="nx"&gt;pages&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Page&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;                    &lt;span class="c1"&gt;// Figma-style workspaces; the canvas shows one&lt;/span&gt;
&lt;span class="err"&gt;├──&lt;/span&gt; &lt;span class="nx"&gt;frames&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Frame&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;                  &lt;span class="c1"&gt;// artboards (comps): x, y, w, h, durationMs, fps, component, instanceOf…&lt;/span&gt;
&lt;span class="err"&gt;├──&lt;/span&gt; &lt;span class="nx"&gt;tracks&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Track&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;                  &lt;span class="c1"&gt;// kind-agnostic lanes; a track with groupId is a ROW of that group&lt;/span&gt;
&lt;span class="err"&gt;├──&lt;/span&gt; &lt;span class="nx"&gt;variables&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;graphs&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;trackers&lt;/span&gt;      &lt;span class="c1"&gt;// typed variables, node graphs, motion tracks&lt;/span&gt;
&lt;span class="err"&gt;└──&lt;/span&gt; &lt;span class="nx"&gt;assets&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;markers&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;The core is pure.&lt;/strong&gt; &lt;code&gt;@atomcut/core&lt;/code&gt; has no DOM and no React. Evaluation is a deterministic function, &lt;code&gt;(document, time) → frame&lt;/code&gt;, and it is the same code path for playback, scrubbing, the MP4 and WebM encoders, the PNG sequence and the Lottie translator. If the export ever differs from what you saw while scrubbing, that is a bug with one place to look, not a second renderer to reconcile.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Undo is patches, not snapshots.&lt;/strong&gt; Every mutation goes through one store using immer's &lt;code&gt;produceWithPatches&lt;/code&gt;. A history entry stores forward and inverse patches; a continuous gesture coalesces into one entry through a merge key. Undo cost is proportional to the change, not to the document.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A frame rate is a grid, never a time.&lt;/strong&gt; Every frame carries its own &lt;code&gt;fps&lt;/code&gt; and there is no document-global rate, because a global rate plus a per-frame override is two stored fields for one fact, and the halves of the app that read each one disagreed the moment a comp set its own. A rate only quantizes: it is what the ruler ticks on, what ← and → step by, what snapping magnetises to, what the exporter iterates. So nesting composes for free. A 12 fps flipbook inside a 60 fps comp holds each drawing for 83.33 ms regardless; the parent samples every 16.67 ms and sees the same cell five times. Nothing resamples across a comp boundary, so nothing drifts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One fact, one field.&lt;/strong&gt; A mirrored layer is a negative scale and nothing else; there is no &lt;code&gt;flipX&lt;/code&gt; flag, because a flag plus a sign disagree the moment a keyframe interpolates between them. The pivot is stored as a fraction of the layer's own box, like CSS &lt;code&gt;transform-origin&lt;/code&gt;, so it survives a resize, a re-wrap and a media swap. Each of these replaced a family of bugs, not one bug.&lt;/p&gt;

&lt;p&gt;If you build editors, I wrote up &lt;a href="https://atomcut.net/blog/a-group-is-a-clip" rel="noopener noreferrer"&gt;why a group is a clip&lt;/a&gt; and &lt;a href="https://atomcut.net/blog/frame-rate-is-a-grid" rel="noopener noreferrer"&gt;why a frame rate is a grid&lt;/a&gt; at length; the two-transform crop, and why the content transform must know nothing about the crop insets, is next.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keyframe anything, including whether an effect is on
&lt;/h2&gt;

&lt;p&gt;Figma's canvas is stateless in time. AtomCut's rule is: if a property has a value, it keyframes. Click the ◆ next to any field in the inspector to plant a key at the playhead. Or arm Record and just edit; every change you make while it is armed becomes a keyframe at the current time, which is how you animate things that have no obvious slider, like whether a blur is enabled or which font weight a word has.&lt;/p&gt;

&lt;p&gt;Keys are value-typed. Numbers interpolate. Colours blend in RGBA. Discrete values (a font weight, the text itself, an effect's on/off) hold until the next key. So a gradient stop, a shadow's blur, an EQ band and an auto-layout gap all animate through the same engine as a position. The curves panel shows real Bézier easing with draggable tangents; non-numeric tracks show as a dope sheet you retime.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is in the box
&lt;/h2&gt;

&lt;p&gt;The point of this post is the model, not the feature list; I wrote &lt;a href="https://atomcut.net/blog/a-full-motion-studio-in-a-browser-tab" rel="noopener noreferrer"&gt;the full contents, with every gap I know of&lt;/a&gt; separately. The short version: 337,000 open-source icons from 208 sets, searchable inside the editor and each one a group of paths that can draw itself on. 4,555 CC0 sound effects with an ear guard that measures perceived loudness. 103 kinetic text looks, captions you tap in time to the clip, text on a path that re-lays on a live curve. 36 keyframeable effects, 23 transitions, motion tracking, a frame-by-frame mode with onion skin, 43 pressure brushes including a watercolour that bleeds.&lt;/p&gt;

&lt;p&gt;Export is where a Figma-shaped tool usually falls down, so: MP4, WebM, GIF, PNG sequence, a lossless MOV master with PCM sound for Resolve and Premiere, SVG with real glyph outlines, and Lottie with a fidelity report that says what the translator could not carry.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fww809akplua81wfnqk90.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fww809akplua81wfnqk90.webp" alt="The AtomCut export dialog: Image, Video and Lottie tabs, a preview of a captioned 1920×1080 frame, Format set to MP4 video, Size 720p (1280×720), 30 fps, Include sound on, Encoder: WebCodecs or live recording" width="800" height="916"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The export dialog. Free is everything up to 720p, no watermark. Lifetime is the ceiling removed.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Figma work into it
&lt;/h2&gt;

&lt;p&gt;There is no &lt;code&gt;.fig&lt;/code&gt; import, and I am not going to pretend one is close. What works today: select the frame in Figma, export it as SVG, drop the file onto the AtomCut canvas. It lands as one resolution-independent layer, instantly, however many nodes it has. Click &lt;strong&gt;Edit as vector&lt;/strong&gt; and every disjoint piece becomes its own layer with its own fill, transform, effects and keyframes. From there it is an AtomCut document. Figma outlines text on SVG export by default, so words arrive as paths; for anything you want to retype or animate per glyph, set the type again in AtomCut with &lt;code&gt;T&lt;/code&gt; and bind it to a fontFamily variable.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does not do, in the order it will bother you
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;No multiplayer.&lt;/strong&gt; This is the Figma feature, and AtomCut does not have it. The document is typed, versioned and patch-based, which is the groundwork a CRDT layer needs, and live collaboration is the next big piece of work. No date. Today it is one person per file.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No speech-to-text.&lt;/strong&gt; Captions are typed and tapped, not transcribed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No 3D.&lt;/strong&gt; No cameras, no lights, no extruded text with materials; the text extrude is stepped 2D copies and its blurb says so.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Not for a two-hour feature.&lt;/strong&gt; It is for motion graphics, short video, UI animation, launch clips and captions. A native NLE will handle a 4K multicam timeline better than a browser tab.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Two months old, one maintainer.&lt;/strong&gt; Rough edges exist, and there is no community yet to have found them for you. Reported bugs are usually fixed in the next release, and the &lt;a href="https://atomcut.net/changelog" rel="noopener noreferrer"&gt;changelog&lt;/a&gt; is public.&lt;/p&gt;

&lt;h2&gt;
  
  
  What free means here, and what $29 buys
&lt;/h2&gt;

&lt;p&gt;Every tool, effect, panel, icon and sound is free, with no watermark and no account, exporting up to 720p. AtomCut Lifetime is $29 once at launch ($49 later) and removes the resolution ceiling: Full HD, 4K, transparent and per-layer export, on web and desktop, every future version included. There is no subscription and there will not be one. The free tier has to be the real tool, because the only moment anyone pays is the moment they have something they want in HD.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Is AtomCut a Figma plugin?&lt;/strong&gt; No. It is a standalone editor at app.atomcut.net. Figma work comes in as SVG.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I import a Figma file?&lt;/strong&gt; Not &lt;code&gt;.fig&lt;/code&gt;. Export or copy the frame as SVG, drop it in, click Edit as vector.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does it work offline and on an iPad?&lt;/strong&gt; Yes. It installs as a PWA and keeps working offline, saving projects locally; on an iPad it is the same workspace with touch and pencil pressure. Desktop builds exist for macOS, Windows and Linux.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can several people edit one file at once?&lt;/strong&gt; Not yet. See the gaps above.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is it open source?&lt;/strong&gt; No. The &lt;a href="https://github.com/novincode/atomcut" rel="noopener noreferrer"&gt;GitHub repo&lt;/a&gt; hosts the releases and the &lt;a href="https://atomcut.net/changelog" rel="noopener noreferrer"&gt;changelog&lt;/a&gt; is public; the source is not open today.&lt;/p&gt;

&lt;p&gt;Open &lt;a href="https://app.atomcut.net" rel="noopener noreferrer"&gt;app.atomcut.net&lt;/a&gt;, press &lt;code&gt;R&lt;/code&gt;, draw a rectangle, arm Record, drag it somewhere else, and press Space.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>design</category>
      <category>showdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>A full motion design studio in a browser tab, free, on Mac, Windows, Linux and iPad</title>
      <dc:creator>Shayan</dc:creator>
      <pubDate>Fri, 18 Sep 2026 14:01:59 +0000</pubDate>
      <link>https://dev.to/codeideal/a-full-motion-design-studio-in-a-browser-tab-free-on-mac-windows-linux-and-ipad-1b03</link>
      <guid>https://dev.to/codeideal/a-full-motion-design-studio-in-a-browser-tab-free-on-mac-windows-linux-and-ipad-1b03</guid>
      <description>&lt;p&gt;AtomCut is a free motion design and video editor that runs in the browser: a Figma-style infinite canvas with a real multi-track timeline underneath it, in one window, with no account and no install. It ships with 337,000 open-source icons, 4,555 public-domain sound effects, 103 kinetic text looks, 36 keyframeable effects, 23 transitions, vector morphing, captions, motion tracking and a frame-by-frame mode, and it exports MP4, WebM, GIF, PNG sequences, SVG and Lottie. It runs on macOS, Windows and Linux as a desktop app, on an iPad with touch, and offline once it has loaded.&lt;/p&gt;

&lt;p&gt;I built it, alone, so discount everything below by however much you like. Then open &lt;a href="https://app.atomcut.net" rel="noopener noreferrer"&gt;app.atomcut.net&lt;/a&gt;. It is free and there is nothing to sign up for, which means every sentence in this post can be checked in about ten minutes. That is the only reason I feel fine writing a post that is, unavoidably, a list of things my own app does.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyhwh8lqxlfkb2mlolume.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyhwh8lqxlfkb2mlolume.png" alt="AtomCut" width="799" height="479"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What "a whole studio in a tab" means
&lt;/h2&gt;

&lt;p&gt;Most browser tools for motion pick a side. Canvas tools (Jitter, Fable, Figma's prototype animations) have a good stage and a thin timeline. Video tools (CapCut, Clipchamp, Canva's video mode) have a timeline and no real vectors, no pen, no keyframes on arbitrary properties. AtomCut's one structural bet is that the two halves belong in one window: the canvas above, an NLE below, and one document underneath both, so a group is a clip, a text layer is a caption, an icon is a set of paths, and all of them keyframe the same way.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2anl8yhowol6zvh9njkc.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2anl8yhowol6zvh9njkc.webp" alt="The AtomCut studio: a Lucide rocket icon on a 1920×1080 frame, the Plugins panel on the left listing Icons, Waveform Visualizer and LipSync Studio, the inspector on the right, and the timeline below showing the Rocket group on Track 1 with its four path layers as rows" width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;One window. Canvas, inspector, plugins rail, and the timeline with a group opened to show the four paths a Lucide rocket is made of.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The rest of this post is the contents. I have kept a "what it does not do" line in most sections, because a list with no gaps is an advert, and because those lines are where you decide whether it fits your work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vector tools that are actually vector tools
&lt;/h2&gt;

&lt;p&gt;A Bézier pen with per-node corner rounding. Parametric shape tools. Segment-level path editing. Boolean composite groups (union, subtract, intersect) that carry their own fill, stroke and effects and that you can still get back out of. Strokes are a pipeline, so one path can have trim, dash, wave, taper and markers stacked on it. Masks, track mattes and feathering. Auto layout that reads the row, column or grid you already arranged and makes it the rule (⇧A).&lt;/p&gt;

&lt;p&gt;Shape morphing is keyframed path geometry: set the points at one time, set them differently at another, and the app interpolates point by point. Draw on a raster layer with 43 pressure-sensitive brushes, including a simulated watercolour with wet bleed, granulation and drying, then split the drawing on its ink into separate layers.&lt;/p&gt;

&lt;p&gt;What it does not do: it is not Illustrator. No mesh gradients, no CMYK, no print workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  337,000 icons that animate themselves
&lt;/h2&gt;

&lt;p&gt;Every open-source icon set (208 sets: Lucide, Tabler, Phosphor, Material Symbols, Simple Icons, the emoji and flag sets) is searchable inside the editor, licence-gated so nothing non-commercial or share-alike can end up in your export. An icon is not a special object; it goes in through the SVG importer and lands as path layers in a group, so it morphs, takes effects, keyframes and exports like anything you drew.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpor57g0cyv7qa70cd467.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpor57g0cyv7qa70cd467.png" alt="Free Motion Design Icons inside AtomCut" width="799" height="479"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Draw On&lt;/strong&gt; is the part people stop on. It is a layer animation that inks the outline instead of moving the layer: together, one by one along the length, or staggered; from either end or the middle; fills kept, faded along or faded late. Drop a Lucide rocket, and it draws itself on over 900 ms, in the order it was drawn. Change the icon, the timing stays. Change the timing, the icon stays.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fghvw722ncsdukaxvuj5s.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fghvw722ncsdukaxvuj5s.webp" alt="A rocket icon half drawn on the canvas at frame 12, the Animate tab open on the right with Draw On at 900 ms, Order set to One by one, and its ease curve" width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Frame 12 of a 900 ms Draw On. It is one tile in the same Animate tab every layer has.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;What it does not do: search matches icon names, not synonyms. "home" misses the sets that call it "house". I wrote up &lt;a href="https://atomcut.net/blog/every-open-source-icon-draws-itself" rel="noopener noreferrer"&gt;how the icon panel is built&lt;/a&gt; if you want the engineering.&lt;/p&gt;

&lt;h2&gt;
  
  
  Text animation is the big one
&lt;/h2&gt;

&lt;p&gt;Text was the first thing AtomCut did and it is still the deepest. Per-character styling. 103 text looks in the library (Karaoke, Neon, Synthwave, VHS, Typed, Terminal, Hologram, Lower Third, Title Card, Credits, Ticker, Datamosh…), each previewed as the real animation, each recoloured by one colour dial. 43 layer animations for entrances and exits. Per-glyph shadow, glow, extrude and echo as effect cards you can stack, sort and keyframe. Text converts to editable vector outlines. Right-to-left and bidirectional text with Arabic shaping, because I type Persian.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Text on a path&lt;/strong&gt;: the text tool grows a wave cursor over any shape's edge; click, and the text binds to that outline. It never snapshots, so a morph or a keyframed corner radius re-lays the words on the live curve. Slide it along in laps, flip it, detach it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Captions&lt;/strong&gt;: a caption is a text layer with timed words. Type the words, press Tap sync and tap along as the clip plays, and the spoken word lights up at the playhead, styled however you like (Karaoke lights it as a white segment of the band; Punch switches it to the look's second colour; Whisper weights it). Retyping a word never shifts the others' timing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sound per letter&lt;/strong&gt;: a typing sound lands on each glyph as it appears, with its hit point on the transient, so kinetic type clicks in time rather than roughly near it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Favflsdqgvgy3zalgbn81.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Favflsdqgvgy3zalgbn81.webp" alt="AtomCut inspector on the Focus scope of a caption, four overrides listed (highlight colour, radius, padding) and a Focus pop scale of 106%, while on the canvas the word " width="800" height="426"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The Focus scope: what the spoken word looks like, separate from the rest of the caption.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;What it does not do: it does not transcribe. You type the words and tap the timing. If you need a first pass from speech, get it elsewhere and bring the words.&lt;/p&gt;

&lt;h2&gt;
  
  
  4,555 sound effects, and a sound stack
&lt;/h2&gt;

&lt;p&gt;An archive of public-domain sounds (Kenney, OpenGameArt's CC0 subset, a synthesized set of ours; 37 publishers, 91 packs), searchable from inside the editor. Every row draws its real waveform before you download a byte. ↓ walks the shelf and plays as it goes; ↵ drops the sound at the playhead with its transient on the playhead, not its first sample. An ear guard measures each sound's perceived loudness, not its peak, and holds anything above a ceiling down to it, so a brickwalled impact cannot ambush you between two soft ticks.&lt;/p&gt;

&lt;p&gt;Audio clips carry an effect stack of their own: parametric EQ, reverb, echo, compressor and drive, plus keyframed gain, fades, pitch and keep-pitch. Cut transitions crossfade audio. A Waveform Visualizer plugin draws a procedural waveform or spectrum that reacts to any clip's sound, live; a LipSync Studio plugin maps mouth shapes to a voice clip and generates the switches as an ordinary nested clip.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fli5d4okqzcvrd76ovnjb.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fli5d4okqzcvrd76ovnjb.webp" alt="Three audio clips on the AtomCut timeline: Riser Tension, a whoosh, and Transition Glitch selected at the playhead, with the inspector showing volume, fades, the sound effect stack and role SFX" width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Three sounds placed with Enter. Ordinary audio clips, tagged SFX, each with fades, an effect stack and keyframable gain.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;What it does not do: dragging a sound onto a lane places the file as it is and ignores the landing settings; use ↵ or Add for those. The &lt;a href="https://atomcut.net/blog/a-sound-effects-library-that-protects-your-ears" rel="noopener noreferrer"&gt;loudness story&lt;/a&gt; is its own post.&lt;/p&gt;

&lt;h2&gt;
  
  
  36 effects, 23 transitions, and everything keyframes
&lt;/h2&gt;

&lt;p&gt;The effect stack is one list, on any layer, and every field on every card keyframes. Shadow, glow, blur, motion blur, RGB split. Light rays, lens flares, a travelling shine, live lightning. Bulge, wave, twirl, lens distortion, roughen edges, glitch. Halftone, pixelate, bevel, posterize, gradient map. A liquid glass that refracts the real backdrop behind it. Film grain, damage, scanlines, vignette, sharpen. Lift/gamma/gain colour wheels. Chroma key and one-click background removal. The same stack applies to the whole frame as a final pass, or through an adjustment layer with a scoped reach.&lt;/p&gt;

&lt;p&gt;Transitions: Cross, Soft, Additive and Blur Dissolve, Dip to Colour, Push, Slide Over, Slide Apart, Roll, Iris, Clock Wipe, Barn Door, Bloom, Flash, Glitch, Shake, Smear, Pop, Displace, and a few more, each with its own knobs.&lt;/p&gt;

&lt;p&gt;Motion tracking follows position, scale and rotation in a video and drives any layer, effect region or matte with it.&lt;/p&gt;

&lt;p&gt;What it does not do: there is no GPU-heavy 3D. No cameras, no lights, no extruded 3D text with materials. The extrude on text is stepped 2D copies behind each letter, and its blurb says so.&lt;/p&gt;

&lt;h2&gt;
  
  
  Animation: keyframe anything, including on/off
&lt;/h2&gt;

&lt;p&gt;Any property keyframes, including whether an effect is enabled. Record mode keys every edit you make while it is on. A curve editor and a dope sheet, easing presets and custom cubic-béziers, motion paths with spatial tangents. Speed is a keyframed property too: ramp into slow motion, hold a frame, drift back. Node graphs and expression drivers, modulators, typed variables that layers reference across the document, so one colour variable retints a whole brand's worth of icons.&lt;/p&gt;

&lt;p&gt;A flipbook mode does frame-by-frame with onion skinning, and each nested composition keeps its own frame rate, which nests correctly because a frame rate is a grid, not a clock.&lt;/p&gt;

&lt;h2&gt;
  
  
  Export: MP4, WebM, GIF, PNG, SVG, Lottie
&lt;/h2&gt;

&lt;p&gt;MP4, WebM and GIF. PNG sequences. Transparent and per-layer exports. Audio-only bounce. SVG, where a text on a path carries real glyph outlines already placed on the curve. Lottie, with a fidelity report that tells you what the translator could and could not carry, because Lottie cannot read a live relation and so every derived frame is baked to ordinary keys first, Draw On included.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0gzlco2w4jp3yx3vxehy.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0gzlco2w4jp3yx3vxehy.webp" alt="The AtomCut export dialog: Image, Video and Lottie tabs, a preview of a captioned 1920×1080 frame, Format set to MP4 video, Size 720p at 0.67× (1280×720), 30 fps, Include sound on, Encoder: WebCodecs or live recording" width="800" height="916"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The export dialog on a 1080p composition, sized to 720p. Free is everything up to 720p; Lifetime is the ceiling removed.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;What it does not do: there is no MOV or ProRes, and no 4K in the free tier. Free exports are capped at 720p with no watermark; AtomCut Lifetime is $29 once (the launch price; $49 later) for Full HD, 4K and beyond, transparent and per-layer export, on web and desktop, every future version included. There is no subscription and there will not be one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mac, Windows, Linux, iPad, offline
&lt;/h2&gt;

&lt;p&gt;It is a web app first: &lt;a href="https://app.atomcut.net" rel="noopener noreferrer"&gt;app.atomcut.net&lt;/a&gt; is the whole thing, and it installs as a PWA and keeps working offline, saving projects locally. There are desktop builds for macOS, Windows and Linux for people who want a dock icon and file associations. On an iPad it is the same workspace with touch: long-press menus, two-finger gestures, pressure on the brushes with a pencil. One workspace at every screen size, not a mobile subset.&lt;/p&gt;

&lt;p&gt;Shortcuts match the physical key, so ⌘Z works under a Persian, Arabic, Cyrillic or Greek layout, and there are keymap presets for Premiere, DaVinci Resolve and Blender if your hands already know one of those.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it is bad at
&lt;/h2&gt;

&lt;p&gt;It is two months old, and one person maintains it, so there are rough edges, and there is no community yet to have found them for you. It is for motion graphics, short video, UI animation, launch clips and captions; it is not for cutting a two-hour feature, where a native NLE will handle a 4K multicam timeline better than a browser tab will. There is no live collaboration; a document is typed and versioned (schema v72, every migration still running), which is the groundwork for it, but today it is one person per file. No speech-to-text. No 3D.&lt;/p&gt;

&lt;p&gt;Reported bugs are usually fixed in the next release, and the &lt;a href="https://atomcut.net/changelog" rel="noopener noreferrer"&gt;changelog&lt;/a&gt; is public, so you can read exactly what changed and when.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why is it free?
&lt;/h2&gt;

&lt;p&gt;Because I think the studio should be the free part. Every tool, effect and panel, every icon and sound, no watermark, no account: that is what makes it possible to open a link and check this post instead of taking my word. The thing you pay for once is the resolution ceiling coming off, at the moment you have something you want in HD. That is the whole business model, and it means the free app has to be genuinely good, or nobody ever reaches that moment.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Is AtomCut really free?&lt;/strong&gt; Yes. The whole studio, with no watermark, exporting up to 720p. Lifetime ($29 once at launch) removes the resolution limit and adds transparent and per-layer export.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I use the icons and sounds commercially?&lt;/strong&gt; Yes. Icon sets are gated to licences that permit commercial use in rendered artwork (CC BY sets show who to credit). Every sound is CC0.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does it work on Linux and iPad?&lt;/strong&gt; The web app runs anywhere a modern browser does, including iPad with touch. Desktop builds exist for macOS, Windows and Linux.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I export to After Effects or Figma?&lt;/strong&gt; No. Export is MP4, WebM, GIF, PNG sequence, SVG and Lottie. Lottie is the interchange format for developers; SVG for designers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is it open source?&lt;/strong&gt; The source is public under a Fair Source licence (FSL-1.1-MIT): you can read it, run it and modify it, and it converts to MIT after two years.&lt;/p&gt;

&lt;p&gt;Open &lt;a href="https://app.atomcut.net" rel="noopener noreferrer"&gt;app.atomcut.net&lt;/a&gt;, press T, type something, and press Space.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>design</category>
      <category>showdev</category>
      <category>productivity</category>
    </item>
    <item>
      <title>330,000 free icons for video, and every one of them can draw itself on</title>
      <dc:creator>Shayan</dc:creator>
      <pubDate>Fri, 18 Sep 2026 02:20:42 +0000</pubDate>
      <link>https://dev.to/codeideal/330000-free-icons-for-video-and-every-one-of-them-can-draw-itself-on-gnd</link>
      <guid>https://dev.to/codeideal/330000-free-icons-for-video-and-every-one-of-them-can-draw-itself-on-gnd</guid>
      <description>&lt;p&gt;AtomCut now ships an Icons panel: Lucide, Tabler, Phosphor, Material Symbols, Simple Icons, the emoji sets, the flag sets, 208 open-source icon sets and 337,000 icons, searchable from inside the editor and dropped onto the canvas as ordinary vector layers. Pick an ink, a size and an entrance in the panel's footer, drag an icon onto the stage or a timeline lane, and it lands drawing itself on: the strokes ink in over 900 ms, one piece after another, in the order the icon was drawn. That is an animated icon for a video, made from a free icon, in one drag. AtomCut is a free motion design and video editor that runs in the browser, no account, no install.&lt;/p&gt;

&lt;p&gt;I want to write down the two decisions underneath it, because both look obvious afterwards and neither was the first thing I built.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where do 337,000 icons come from?
&lt;/h2&gt;

&lt;p&gt;Not from us. Every serious open icon set is published in the Iconify data format: a JSON file per set with the set's name, author, licence, sample icons, and one entry per icon holding its SVG body and viewBox. The same format feeds the Iconify plugin for Figma and the icon pickers in half the component libraries you have used. There is a public API in front of it that lists the sets, lists a set's icons, searches names across all of them, and returns bodies in batches.&lt;/p&gt;

&lt;p&gt;My first instinct was a pipeline: pull the JSON, index it, publish it to object storage next to the sound library, ship a search. I got as far as sketching the manifest before noticing I was re-deriving, badly, exactly the three endpoints the API already had. So the editor asks the API. It asks it through a hostname I own, a Cloudflare Worker that caches every answer at the edge and forwards nothing but the four paths the panel uses, with the public API as the fallback if that Worker is ever down. If I later want richer tags than names, that is a different origin behind the same base URL, not a rewrite.&lt;/p&gt;

&lt;p&gt;The one thing I did build is a licence gate. The catalogue includes sets under non-commercial and share-alike terms, and a 24px glyph must never put a condition on the video you export. AtomCut offers a set only if its SPDX licence is on a short list that allows commercial use in a rendered artwork, shows the licence on every set's cover, and for CC BY sets names who to credit. That cut 238 sets to 208.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8j4ib6b2byg99lhu8v1r.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8j4ib6b2byg99lhu8v1r.webp" alt="The Icons panel open over the AtomCut studio: a rail of sets on the left, and on the right the families Interface, Material, Emoji and Logos as horizontal rows of set covers, each showing four sample icons, its icon count and its licence" width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Home. One row per family, the licence on every cover, View all at the end of each row.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why an icon is not an icon layer
&lt;/h2&gt;

&lt;p&gt;It would have been quick to add an &lt;code&gt;icon&lt;/code&gt; clip kind that stores &lt;code&gt;lucide:rocket&lt;/code&gt; and renders the body. It would also have been wrong in the way that costs the most later: a new kind of layer is a new row in every table in the app. Selection, keyframes, effects, the SVG exporter, the Lottie translator, morphing, the pen tool, the Layers panel: each would need to learn what an icon is, and until every one had, an icon would be the layer that does less.&lt;/p&gt;

&lt;p&gt;So an icon goes in through the SVG importer, the same door a dropped &lt;code&gt;.svg&lt;/code&gt; file uses. The importer already splits every disjoint piece of an SVG into its own path layer and groups them. A Lucide rocket therefore arrives as four path layers in a group called Rocket, each with a stroke list, each editable with the pen, each keyframeable, each able to morph into something else. The panel's only job is to decide what the SVG says before it goes in: the ink (which can be a colour variable, so a brand palette retints every icon at once), the landing size, and the stroke width if you want thinner lines than the set drew.&lt;/p&gt;

&lt;p&gt;One real bug fell out of doing it this way, and it was in the importer, not the panel. Lucide, Feather and Tabler put the whole look on the root &lt;code&gt;&amp;lt;svg&amp;gt;&lt;/code&gt; element: &lt;code&gt;fill="none" stroke="currentColor" stroke-width="2"&lt;/code&gt;. The importer walked the root's children starting from an empty style, so every icon came in black and filled. Nobody had noticed because nobody had dropped a bare Lucide file before; the panel dropped a thousand of them in an afternoon. The fix made the root part of the cascade, and every SVG import in the app got a little more correct.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdydwts34npofcaktiu3k.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdydwts34npofcaktiu3k.webp" alt="A Lucide rocket on the canvas, selected, with the timeline below showing a Rocket group on Track 1 and its four path layers as rows underneath it" width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;What lands: a group of path layers, not an icon object. Everything a path can do, the icon can do.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Draw On, and why it is not a pose
&lt;/h2&gt;

&lt;p&gt;Layer animations in AtomCut are poses: a preset takes a progress from 0 to 1 and returns an opacity, an offset, a scale, a rotation, a blur. Fades, slides, bounces and spins are all that one function. It is deliberately small, because the same pose is read by the canvas, by text glyphs, by the SVG exporter and by the Lottie translator, and none of them has to know which preset produced it.&lt;/p&gt;

&lt;p&gt;A stroke drawing itself on is not a pose. It cannot be expressed as where the layer is; it is how much of a line exists. I did not want to teach a pose about outlines, because then a text glyph and a Lottie transform would be carrying a field that means nothing to them. So Draw On is a second channel of the same preset: same id, duration, easing, in and out edges, and the same timeline handle drags it, but only the stroke pipeline reads it. The compositor sees the identity pose and takes its fast path.&lt;/p&gt;

&lt;p&gt;The pipeline was ready for it, which is the part I was most pleased about. Every stroke in AtomCut already runs a trim stage, and trim is cut as exact Béziers along arc length. A draw-on is a trim window per strand that opens over time, applied before the stroke's own trim, so a dash of light can still chase around a half-drawn logo. The knobs are the ones After Effects' Trim Paths and every SVG draw-on library converged on:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Knob&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Order&lt;/td&gt;
&lt;td&gt;Together, One by one (along the total length, the pen never lifts), Staggered (equal shares, each a beat after the last)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stagger&lt;/td&gt;
&lt;td&gt;For staggered: 0% is together, 100% is back to back, more leaves a pause between pieces&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pieces&lt;/td&gt;
&lt;td&gt;Bottom piece first, the way the icon was drawn, or top first&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Start at&lt;/td&gt;
&lt;td&gt;Where along each strand the ink begins, 0 to 100%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Direction&lt;/td&gt;
&lt;td&gt;Forward, backward, or both ways out of the start point&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fill&lt;/td&gt;
&lt;td&gt;Keep, fade along, or fade late (the fill lands as the last line does)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pen&lt;/td&gt;
&lt;td&gt;The width borrowed when a filled icon has no stroke of its own&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;That last row is what makes it work on Material and Font Awesome, which are silhouettes with no line to draw. Draw On inks the silhouette's edge in the fill colour and then brings the fill in behind it.&lt;/p&gt;

&lt;p&gt;A group read-through does the rest. Put Draw On on the Rocket group and its four paths draw as one drawing, bottom piece first, because that is document order in the SVG and the order a person drew it in. A child with its own Draw On keeps it; clear the group's and every child is untouched. It is the same rule a group's fill already followed, and it is the whole deep-customisation story: one setting for the icon, and any piece that deserves its own timing gets its own.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1sri0kerm2kdtpplvq2p.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1sri0kerm2kdtpplvq2p.webp" alt="The rocket half drawn on the canvas at frame 12, the Animate tab open on the right showing Draw On at 900 ms with Order set to One by one, From set to Start and Fill set to Fade late, and its ease-in-out curve" width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Frame 12 of a 900 ms entrance. The Animate tab is the same one every layer has; Draw On is one more tile in it.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Animated icons for video, without the marketplace
&lt;/h2&gt;

&lt;p&gt;The reason this matters more than a picker: an animated icon pack is a product category. Sites sell them by the thousand, as Lottie files or MP4 loops, one motion baked per icon. Here the motion is a setting and the icon is a layer, so the pairing is yours. Any of 337,000 icons, any entrance in the gallery, any easing, any duration, in the brand colour from your variables, exported as MP4, WebM, GIF, PNG sequence, SVG or Lottie from the same render. Change your mind about the timing after the fact and it is a slider, not a re-download.&lt;/p&gt;

&lt;p&gt;Lottie was the export I expected to lose, and did not. A Lottie trim is one window per shape group, keyed over time; a draw-on is exactly that, one per strand, so the exporter bakes the windows it would have drawn, one key per frame, and a filled icon gets the same borrowed outline the canvas gives it. The file is bigger than a hand-authored one would be. It plays the same.&lt;/p&gt;

&lt;p&gt;The panel is in the Plugins rail of the editor now. The documentation, with every knob and every family, is at &lt;a href="https://atomcut.net/docs/icons" rel="noopener noreferrer"&gt;/docs/icons&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>design</category>
      <category>svg</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Add animated captions to a video in the browser, free</title>
      <dc:creator>Shayan</dc:creator>
      <pubDate>Wed, 16 Sep 2026 16:46:46 +0000</pubDate>
      <link>https://dev.to/atomcut/add-animated-captions-to-a-video-in-the-browser-free-1pg1</link>
      <guid>https://dev.to/atomcut/add-animated-captions-to-a-video-in-the-browser-free-1pg1</guid>
      <description>&lt;p&gt;AtomCut adds word-by-word, karaoke-style captions to a video in your browser: you type the words, cut them into cues, sync the timing, style the active word, and export an MP4. AtomCut is a free motion design and video editor that runs in the browser, no account, no install.&lt;/p&gt;

&lt;p&gt;There's one thing it doesn't do yet: it doesn't listen to your audio and write the words for you. You type the script, and you time it. That's slower than a one-click auto-transcribe, and it's also why the timing is exactly what you want and not what a speech model guessed.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Import your clip
&lt;/h2&gt;

&lt;p&gt;Drag your video onto the canvas, or use &lt;strong&gt;Import media&lt;/strong&gt; in the Media panel and then &lt;em&gt;Place on frame&lt;/em&gt;. It lands on its own track with its sound attached; the composition below is a 1920×1080 frame, but a vertical 1080×1920 reel is one click away in the new-project dialog.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Faq84nxxeuuyseh35lbyy.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Faq84nxxeuuyseh35lbyy.webp" alt="The AtomCut studio: a talking-head clip on the canvas, the caption above it on Track 1 and the video on Track 3 in the timeline" width="800" height="470"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The whole studio. The caption sits on the track above the video, so it draws on top.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Type the words as a text layer
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;+ Clip → Text&lt;/strong&gt; in the timeline header adds a text layer at the playhead. Open &lt;em&gt;Content&lt;/em&gt; in the inspector and type what's said, exactly as it's said. This is the one string every caption cue will be a span of, so get the words right here.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Turn it into a caption and cut it into cues
&lt;/h2&gt;

&lt;p&gt;In the same &lt;em&gt;Content&lt;/em&gt; section, switch on &lt;strong&gt;Captions&lt;/strong&gt;. That seeds one cue per word across the clip and gives the spoken word a highlight you can see immediately. (There's also &lt;strong&gt;+ Clip → Caption&lt;/strong&gt; if you'd rather start with a caption and type into it.)&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;Cues&lt;/strong&gt; tab appears on the right rail. Its &lt;em&gt;re-cut&lt;/em&gt; menu recuts the same text one word per cue, one line per cue, or one letter per cue; word-level is the karaoke look most people want. Each cue is a span of your original string, so retyping a word in the cue list later doesn't touch any other cue's timing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftiy3qk188oygc6xi6z4c.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftiy3qk188oygc6xi6z4c.webp" alt="The caption selected on the canvas with the Animate tab open: a Scale In animation per word, 260 ms, with its easing curve" width="800" height="426"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;A caption is a text layer, so it takes any text animation: here Scale In, per word.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Time the cues
&lt;/h2&gt;

&lt;p&gt;Two ways to do it. Tap sync plays the clip and lets you tap a button in time with each word, which stamps that cue's start where you tapped. Or spread every cue evenly across the clip's duration with one click, then drag individual cue boundaries by hand where the even spacing is off. You can also give a cue a word from its neighbour, split one cue in two, or merge two into one, all from the same cue list.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fno4i341yp8x18olh1fyo.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fno4i341yp8x18olh1fyo.webp" alt="The Cues panel: Tap sync button, re-cut and even controls, and eight word cues with their durations, the fifth one active at the playhead" width="800" height="426"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The Cues panel. The lit row is the word under the playhead.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Style the word being spoken
&lt;/h2&gt;

&lt;p&gt;The inspector for a caption has two scopes at the top: &lt;strong&gt;Text&lt;/strong&gt; (the whole layer) and &lt;strong&gt;Focus&lt;/strong&gt; (the word being spoken). Pick &lt;em&gt;Focus&lt;/em&gt; and every field you touch overrides only that word: its colour, a highlight colour with its own radius and padding, and a &lt;em&gt;Focus pop&lt;/em&gt; scale. The focus is a style range on the same text layer, not a separate object, so it stays attached to its word as you keep editing cues around it.&lt;/p&gt;

&lt;p&gt;For the look in these screenshots we didn't style anything by hand: the Library's &lt;em&gt;Text looks&lt;/em&gt; has a &lt;strong&gt;Captions&lt;/strong&gt; group (Subtitle, Punch, Karaoke, Clean Sub, Boxed, Shout, Ticker, Whisper), and &lt;em&gt;Karaoke&lt;/em&gt; applied to the selected layer gives the green band with the spoken word switching to white. A caption look carries its own idea of the spoken word, so applying one restyles the lit word too. Everything else in the caption can carry its own reveal preset and stagger, the same system that drives any AtomCut text animation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9hdv8km258150g4eypxw.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9hdv8km258150g4eypxw.webp" alt="The Focus scope of the caption inspector: four highlight overrides (colour, radius, padding) and a Focus pop scale of 106 %" width="800" height="426"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Focus scope: the overrides that apply only to the word being spoken.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Export
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://atomcut.net/docs/exporting" rel="noopener noreferrer"&gt;Export&lt;/a&gt; as MP4, WebM or GIF. Every export is free with no watermark, capped at 720p; the one-time $29 adds HD, 4K and transparent export if you need more than social-post resolution.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fh5fkr9ftd5sws1dr1cq4.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fh5fkr9ftd5sws1dr1cq4.webp" alt="The Export dialog on the Video tab: MP4 video, 720p HD, 30 fps, include sound on" width="800" height="916"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Export, Video tab. 720p is the free ceiling; the one-time licence unlocks the sizes above it.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;AtomCut does not transcribe your audio. There's no speech-to-text step: you type the caption's text yourself and time the cues by tapping along or dragging, rather than getting a rough auto-transcript to clean up.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Questions people ask
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Does AtomCut transcribe my audio automatically?&lt;/strong&gt;&lt;br&gt;
No. You type the words as a text layer, then convert them to a caption and cut them into cues. If you already have an SRT or a transcript, you'd paste the text in and time the cues from there rather than importing timed subtitles directly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I give one word a different look from the rest?&lt;/strong&gt;&lt;br&gt;
Yes. Select a run of letters or words in the caption and give that span its own animation or style, independent of the rest of the layer, without splitting it into a separate text layer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does this work on a tablet?&lt;/strong&gt;&lt;br&gt;
The drawing and timeline tools share one workspace at every size, so tap-syncing cues works the same on a tablet as it does with a mouse.&lt;/p&gt;

&lt;p&gt;Once your cues are timed, the next thing worth trying is a sound on every word instead of just a style change — see &lt;a href="https://atomcut.net/blog/kinetic-typography-with-sound" rel="noopener noreferrer"&gt;kinetic typography with a sound per letter&lt;/a&gt; or the full reference at &lt;a href="https://atomcut.net/docs/text-animation" rel="noopener noreferrer"&gt;/docs/text-animation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try it:&lt;/strong&gt; &lt;a href="https://app.atomcut.net" rel="noopener noreferrer"&gt;app.atomcut.net&lt;/a&gt; — free, no account, works offline.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>video</category>
      <category>tutorial</category>
      <category>design</category>
    </item>
    <item>
      <title>I built a motion design studio in the browser. Here's what it took.</title>
      <dc:creator>Shayan</dc:creator>
      <pubDate>Wed, 16 Sep 2026 15:46:53 +0000</pubDate>
      <link>https://dev.to/atomcut/i-built-a-motion-design-studio-in-the-browser-heres-what-it-took-3ic1</link>
      <guid>https://dev.to/atomcut/i-built-a-motion-design-studio-in-the-browser-heres-what-it-took-3ic1</guid>
      <description>&lt;p&gt;&lt;a href="https://atomcut.net" rel="noopener noreferrer"&gt;AtomCut&lt;/a&gt; started as a tool that was supposed to animate text. Today it's an infinite canvas above a multi-track timeline, in the browser, where you can keyframe anything, paint with a wet watercolour brush, track motion, add captions that follow a voice, and export to MP4, GIF, SVG or Lottie. It's free, there's no account, and it works offline.&lt;/p&gt;

&lt;p&gt;This is the honest version of how it got there, because the tidy version ("I had a vision and executed") isn't useful to anyone building something ambitious on their own time.&lt;/p&gt;

&lt;h2&gt;
  
  
  It started as a typing animation
&lt;/h2&gt;

&lt;p&gt;The folder is still called &lt;code&gt;typomation&lt;/code&gt;. The first thing it did was type words onto a frame, one letter at a time, with a sound on each keystroke, so a short clip could have a title that arrived the way a typewriter would put it there.&lt;/p&gt;

&lt;p&gt;The problem with a tool that only does one thing well is that the second thing you need is always outside it. I needed a background clip under the text. Then a sound on each letter. Then the text had to move along a path. By the time I had those, I had a timeline that didn't care what kind of clip sat on it, and the question stopped being "what should a text tool do" and became "what is the smallest set of ideas that makes everything else a special case".&lt;/p&gt;

&lt;h2&gt;
  
  
  The one rule everything else hangs on
&lt;/h2&gt;

&lt;p&gt;Anything that describes &lt;em&gt;what&lt;/em&gt; an animation is lives in a pure package with no DOM and no React. Anything that describes &lt;em&gt;how it's shown or edited&lt;/em&gt; lives in the app. That's the whole architecture, and every good week I had came from it.&lt;/p&gt;

&lt;p&gt;Concretely: a project is one JSON document, validated with zod, versioned. The document is at schema version 71 today, and every one of those migrations still runs, so a project from the first month opens. Rendering a frame is a pure function: &lt;code&gt;(document, time) → what you see&lt;/code&gt;. Playback, scrubbing, the MP4 exporter, the PNG sequence exporter and the Lottie exporter all call the same function. There is no "export renderer" that drifts from the "preview renderer", because there's only one.&lt;/p&gt;

&lt;p&gt;Undo is patches, not snapshots. Every mutation runs through one store that records a forward patch and an inverse patch. Undo cost is proportional to the size of the change, not the size of the project, and a continuous gesture (dragging a keyframe for two seconds) coalesces into one history entry.&lt;/p&gt;

&lt;p&gt;None of this is novel. It's the same shape Figma and Photoshop ended up at. What I'm saying is that if you &lt;em&gt;start&lt;/em&gt; there, a lot of features become a union variant and a registry row instead of a rewrite. A group on the timeline is a clip that happens to contain rows. A caption is a text clip with a cue map. A flipbook is a nested composition whose cells are drawings. When the primitives are right, the feature list grows without the codebase growing the same way.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftbmoicuul7hr6w1ez9ju.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftbmoicuul7hr6w1ez9ju.png" alt="The AtomCut studio: a 9:16 frame on the canvas with a caption whose first word is lit at the playhead, the timeline below with a text clip and a caption clip on one track, and the typography inspector open for the two selected layers" width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The studio: canvas above, timeline below. Two layers selected, the caption&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What was actually hard
&lt;/h2&gt;

&lt;p&gt;Not the effects. Thirty-six layer effects sounds like the hard part; it's the easy part, because an effect is a shader and a settings card, and the keyframe engine already animates any number.&lt;/p&gt;

&lt;p&gt;The hard parts were the ones where two true things fight:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A cropped video has two things you can move.&lt;/strong&gt; The window and the picture inside it. If you store that as one transform plus four insets, every keyframed reframe visibly swims between keys, because three animated quantities cancel to a constant that the interpolation doesn't know about. The fix was two transforms, one for the window and one for the content, and a rule that the content transform never reads the crop. It took a week to see that the bug was in the data model and not in the interpolation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A mirrored layer is a negative scale, and nothing else.&lt;/strong&gt; I had a &lt;code&gt;flipX&lt;/code&gt; flag for a while. A flag plus a sign is two fields for one fact, and they disagreed the moment a keyframe interpolated across a flip. Deleting the flag deleted a family of bugs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A frame rate is a grid, never a time.&lt;/strong&gt; There is no project-wide fps. Each composition carries its own, and a rate only ever quantises: it's what the ruler ticks on, what the arrow keys step by, what export iterates on. A 12 fps flipbook inside a 60 fps comp holds each cell for 83.33 ms and nothing resamples anything, so nothing can drift. The earlier version had a global rate plus overrides, and half the app read one while half read the other.&lt;/p&gt;

&lt;p&gt;The crop one cost the most. I fixed the interpolation three times before I admitted the data was wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  The changelog is the spec
&lt;/h2&gt;

&lt;p&gt;Every change has to earn one line in a public changelog, written before the code: what can a user do now that they couldn't before. If I can't write that line, the change doesn't ship. It sounds like process; it's actually the fastest way I've found to kill work that only feels productive. Half of what I started never got its line.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it's bad at
&lt;/h2&gt;

&lt;p&gt;Cutting a two-hour 4K timeline. It renders in the browser; a native NLE will beat it on heavy footage. It's young, so you will find rough edges; when someone reports one, it's usually fixed in the next release, and you can watch that happen in the changelog.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;It's free and it stays free. Exports are capped at 720p; $29 once, not a subscription, removes the cap. After that, the plan is live collaboration, an assistant inside the editor that can operate the timeline, and the plugin SDK opening up.&lt;/p&gt;

&lt;p&gt;If you make anything with it, I'd like to see it. It opens at &lt;a href="https://app.atomcut.net" rel="noopener noreferrer"&gt;app.atomcut.net&lt;/a&gt; with no signup.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>showdev</category>
      <category>javascript</category>
      <category>react</category>
    </item>
    <item>
      <title>MotionKit Figma Motion: import, sync, and push native animation (yes, even baked physics)</title>
      <dc:creator>Shayan</dc:creator>
      <pubDate>Sun, 28 Jun 2026 00:19:07 +0000</pubDate>
      <link>https://dev.to/codeideal/motionkit-figma-motion-import-sync-and-push-native-animation-yes-even-baked-physics-40e6</link>
      <guid>https://dev.to/codeideal/motionkit-figma-motion-import-sync-and-push-native-animation-yes-even-baked-physics-40e6</guid>
      <description>&lt;p&gt;Figma shipped native Motion. A real animation timeline, right inside the file.&lt;/p&gt;

&lt;p&gt;When that landed, a lot of people emailed me some version of the same question: &lt;em&gt;"is MotionKit dead now?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Fair question. My honest first reaction was a quiet "...maybe." But the more I used native Motion, the clearer it got — it's genuinely good, and it's &lt;em&gt;not&lt;/em&gt; trying to be everything. No physics. No frame-by-frame. No Lottie export. No morphing. So the move was never to compete with it. The move was to &lt;strong&gt;bridge to it&lt;/strong&gt; — let the two tools hand work back and forth, and let MotionKit be the power layer that does the stuff native Motion can't.&lt;/p&gt;

&lt;p&gt;So that's what this update is. A two-way bridge between MotionKit and Figma's native Motion.&lt;/p&gt;

&lt;p&gt;Here's everything it does, and exactly how to use it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The short version
&lt;/h2&gt;

&lt;p&gt;Four moves, one little control in the header:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Import&lt;/strong&gt; native Motion into MotionKit as real, editable keyframes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Live sync&lt;/strong&gt; (read-only by default) so changes in Figma Motion flow into MotionKit as you work&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Link for export&lt;/strong&gt; so your native Motion renders inside a Lottie &lt;em&gt;without&lt;/em&gt; duplicating anything&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Push&lt;/strong&gt; MotionKit keyframes back into native Motion — including motion you baked from the physics engine&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And the headline trick: &lt;strong&gt;bake a real physics drop in MotionKit, then push it into Figma Motion as native keyframes.&lt;/strong&gt; Native Motion has no physics engine. Now it kind of does.&lt;/p&gt;

&lt;h2&gt;
  
  
  First, find the bridge
&lt;/h2&gt;

&lt;p&gt;Look at the top-right of the toolbar, next to the Pro star. There's a small badge: the &lt;strong&gt;MotionKit diamond, an arrow, and the Figma logo&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That little arrow &lt;em&gt;is&lt;/em&gt; the status. You don't have to open anything to read it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;faint dotted line&lt;/strong&gt; → not connected&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;arrow pointing into MotionKit&lt;/strong&gt; → reading from Figma, live, read-only&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;arrows on both ends&lt;/strong&gt; → two-way, MotionKit also writes back&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If there's native Motion sitting on the current frame but you haven't connected, you'll see a small purple dot on the Figma side — that's "hey, there's something here to import." Click the badge to open the bridge.&lt;/p&gt;

&lt;p&gt;That's the whole mental model. Direction of the arrow = direction of the data. I rebuilt this specifically so you never have to remember what some toggle does.&lt;/p&gt;

&lt;h2&gt;
  
  
  Import: pull native Motion in as editable keyframes
&lt;/h2&gt;

&lt;p&gt;This is the one most people want first. You (or a teammate) animated something in Figma Motion, and you want it as proper MotionKit keyframes — to refine the curves, add morphs, export to Lottie, whatever.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;select the animated frame&lt;/li&gt;
&lt;li&gt;open the bridge and hit &lt;strong&gt;Import from Figma Motion&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;pick how conflicts resolve — &lt;strong&gt;Figma wins&lt;/strong&gt; (native overwrites) or &lt;strong&gt;Keep mine&lt;/strong&gt; (native only fills gaps)&lt;/li&gt;
&lt;li&gt;done. you get a little report of what came across, what got an approximated easing, and what was skipped&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It pulls transforms, opacity, size, corner radius, stroke weight, auto-layout spacing, solid fills and strokes, drop and inner shadows, and blur — as real keyframes you can grab and move. Position and scale come in as proper X/Y so you can edit each axis on its own.&lt;/p&gt;

&lt;p&gt;One honest note: once MotionKit owns a transform, MotionKit drives it during preview. That's the trade for editability. If you'd rather native Motion stay in charge of movement, keep reading — &lt;strong&gt;Link&lt;/strong&gt; is for exactly that.&lt;/p&gt;

&lt;h2&gt;
  
  
  Live sync: read-only by default, on purpose
&lt;/h2&gt;

&lt;p&gt;Turn the direction control to &lt;strong&gt;Read&lt;/strong&gt; and MotionKit keeps pulling changes from Figma Motion as you work. Tweak a curve natively, it shows up here.&lt;/p&gt;

&lt;p&gt;The important part: &lt;strong&gt;read-only is the default, and it will never touch your Figma file&lt;/strong&gt; unless you explicitly switch to Two-way. Sync turning on used to scare people because an early version could write back when you didn't expect it. Not anymore — Off, Read, and Two-way are one clear three-way switch, and Read is a one-way street into MotionKit.&lt;/p&gt;

&lt;h2&gt;
  
  
  Link for export: native Motion in your Lottie, zero duplication
&lt;/h2&gt;

&lt;p&gt;This is the cleanest option and honestly the one I'd reach for most.&lt;/p&gt;

&lt;p&gt;When you &lt;strong&gt;Link Figma Motion for export&lt;/strong&gt;, MotionKit &lt;em&gt;references&lt;/em&gt; the native animation instead of copying it. Nothing gets added to your timeline. Nothing moves on the canvas. No duplicate rows, no two engines fighting over the same layer and sending it twice as far as it should go.&lt;/p&gt;

&lt;p&gt;Then when you export to Lottie, MotionKit folds the native Motion in at render time and ships one animation — your MotionKit layers and the native Motion together. Your MotionKit keyframes always win on any property you actually animated; native just fills the rest.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;open the bridge&lt;/li&gt;
&lt;li&gt;hit &lt;strong&gt;Link Figma Motion for export&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;animate the rest in MotionKit like normal&lt;/li&gt;
&lt;li&gt;export to Lottie — the native motion is baked into the file&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you go back and edit the Figma path afterward, just hit Link again to refresh the snapshot.&lt;/p&gt;

&lt;h2&gt;
  
  
  The fun one: bake physics in MotionKit, push it into Figma Motion
&lt;/h2&gt;

&lt;p&gt;Native Motion can't simulate physics. MotionKit can — and it bakes the result into normal keyframes. So you can author a real physical bounce in MotionKit and then hand those keyframes to native Motion.&lt;/p&gt;

&lt;p&gt;Here's the full loop:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;drop in the layer you want to throw or bounce&lt;/li&gt;
&lt;li&gt;add a &lt;strong&gt;Physics&lt;/strong&gt; modifier — set gravity, bounce, mass, and mark whatever's the floor or a wall as a collider&lt;/li&gt;
&lt;li&gt;hit &lt;strong&gt;Bake&lt;/strong&gt;. MotionKit runs an actual rigid-body simulation and writes it back as real position/rotation keyframes (re-bake as much as you want — it always replays from the top)&lt;/li&gt;
&lt;li&gt;happy with the drop? open the &lt;strong&gt;Figma Motion bridge&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;expand &lt;strong&gt;Advanced → Push to Figma Motion&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;confirm (back up your file first — every push is backed up and revertable, but still), and the baked bounce now lives as &lt;strong&gt;native Figma Motion keyframes&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now the motion is native. It plays with Figma's own Motion engine, lives in the file, and anyone can open it without the plugin. You used MotionKit purely as the physics authoring tool. That's the whole idea of the bridge — each tool doing the part it's best at.&lt;/p&gt;

&lt;p&gt;Push writes the round-trip-safe subset (transforms, opacity, size, color, shadows, blur, and friends), so a tumbling, bouncing object's position and rotation transfer cleanly. Easings without an exact native match get approximated, and the report tells you which.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bonus: nested frames animated in Figma Motion
&lt;/h2&gt;

&lt;p&gt;If a child frame inside your frame is animated natively, MotionKit can pull it in as a previewable &lt;strong&gt;clip&lt;/strong&gt; — so it actually plays inside your timeline, with its own loop mode you control per clip. When MotionKit spots one, you'll get a one-click "import as clips" prompt. Handy for building a scene out of pieces other people animated natively.&lt;/p&gt;

&lt;h2&gt;
  
  
  What survives the trip (the honest table)
&lt;/h2&gt;

&lt;p&gt;Trust matters more than hype, so here's the real list.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Round-trips both ways:&lt;/strong&gt; position, scale, rotation, opacity, size, corner radius, stroke weight, auto-layout spacing, solid fill &amp;amp; stroke color, drop &amp;amp; inner shadow, layer &amp;amp; background blur.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MotionKit-only (stays here, reported as skipped on push):&lt;/strong&gt; text animation, shape morphing, frame-by-frame, gradient-stop animation, the beta noise/texture/glass effects, and expression-driven properties. These are the things native Motion has no slot for — so MotionKit keeps them, and uses Link-for-export when you need them in a final render.&lt;/p&gt;

&lt;p&gt;No silent data loss. The bridge always hands you a report of what mapped, what got an approximated easing, and what it couldn't translate.&lt;/p&gt;

&lt;h2&gt;
  
  
  The one real limitation
&lt;/h2&gt;

&lt;p&gt;Figma's plugin API lets me &lt;em&gt;read&lt;/em&gt; and &lt;em&gt;write&lt;/em&gt; Motion keyframes, but it can't move native Motion's playhead or evaluate it at an arbitrary time. So I can't show you Figma's native render and MotionKit's preview playing in perfect lockstep on the same canvas — that part isn't possible yet.&lt;/p&gt;

&lt;p&gt;That's why Link-for-export is a snapshot you re-link after edits, instead of a live mirror. The day Figma adds a "give me the value at time &lt;em&gt;t&lt;/em&gt;" call, that seam flips to live and most of this gets even better. I've already filed it as the number one thing I want from the Motion API.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where this is going
&lt;/h2&gt;

&lt;p&gt;The direction is simple: &lt;strong&gt;MotionKit as the Pro power layer that sits on top of native Motion.&lt;/strong&gt; Native Motion handles the clean, file-native basics. MotionKit handles physics, frame-by-frame, morphing, expressions, and Lottie — and the bridge moves work between them without you redoing anything.&lt;/p&gt;

&lt;p&gt;And as always — if something feels off or breaks, tell me. Half of every release is just people telling me what annoyed them.&lt;/p&gt;

&lt;p&gt;happy animating.&lt;/p&gt;

</description>
      <category>figma</category>
      <category>showdev</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Figma's New Motion vs MotionKit — timeline is here, but is it enough?</title>
      <dc:creator>Shayan</dc:creator>
      <pubDate>Fri, 26 Jun 2026 20:52:11 +0000</pubDate>
      <link>https://dev.to/codeideal/figmas-new-motion-vs-motionkit-timeline-is-here-but-is-it-enough-2ici</link>
      <guid>https://dev.to/codeideal/figmas-new-motion-vs-motionkit-timeline-is-here-but-is-it-enough-2ici</guid>
      <description>&lt;p&gt;Figma finally added a real &lt;strong&gt;timeline-based motion system&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That changed the game a bit.&lt;/p&gt;

&lt;p&gt;But once you actually use it in real animation workflows… you notice something quickly:&lt;/p&gt;

&lt;p&gt;It’s powerful — but still incomplete.&lt;/p&gt;

&lt;p&gt;That’s where MotionKit still sits in a very different category.&lt;/p&gt;

&lt;p&gt;This isn’t “which is better”.&lt;/p&gt;

&lt;p&gt;It’s more like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;what Figma gives you vs what you actually need once animation gets serious.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  What Figma Native Motion actually does now
&lt;/h2&gt;

&lt;p&gt;Figma’s motion system now includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;real timeline editing&lt;/li&gt;
&lt;li&gt;keyframe-based animation&lt;/li&gt;
&lt;li&gt;basic easing control&lt;/li&gt;
&lt;li&gt;physics-like behavior (limited / experimental level depending on setup)&lt;/li&gt;
&lt;li&gt;improved Smart Animate pipeline&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So yes — it’s no longer just prototype transitions.&lt;/p&gt;

&lt;p&gt;You can now:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;animate objects across time&lt;/li&gt;
&lt;li&gt;scrub animations&lt;/li&gt;
&lt;li&gt;control timing visually&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That alone is a big shift.&lt;/p&gt;

&lt;p&gt;But here’s the catch:&lt;/p&gt;

&lt;p&gt;It still focuses on &lt;strong&gt;flat motion inside a single layer context&lt;/strong&gt;, not structured animation systems.&lt;/p&gt;




&lt;h2&gt;
  
  
  Where Figma Motion still falls short
&lt;/h2&gt;

&lt;p&gt;Even with the timeline, a few big gaps remain:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. No real text content animation system
&lt;/h3&gt;

&lt;p&gt;You can animate text transforms, but not true content-level animation logic (like structured text transitions, sequencing, or per-character systems).&lt;/p&gt;




&lt;h3&gt;
  
  
  2. Frame-by-frame (FBF) is still not a real mode
&lt;/h3&gt;

&lt;p&gt;You can fake it with frames, but:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;no true FBF workflow&lt;/li&gt;
&lt;li&gt;no synced editing across frames&lt;/li&gt;
&lt;li&gt;no onion-skin style consistency system&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You still end up manually managing duplication.&lt;/p&gt;




&lt;h3&gt;
  
  
  3. Nested animations are not first-class
&lt;/h3&gt;

&lt;p&gt;Figma doesn’t properly support:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;nested frame animation trees&lt;/li&gt;
&lt;li&gt;reusable animation blocks inside components&lt;/li&gt;
&lt;li&gt;hierarchical animation timelines&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything still lives mostly at a flat level.&lt;/p&gt;




&lt;h3&gt;
  
  
  4. Physics is not truly baked
&lt;/h3&gt;

&lt;p&gt;Even when physics-like behavior exists:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;it’s not fully controllable&lt;/li&gt;
&lt;li&gt;it’s not always exportable as keyframes&lt;/li&gt;
&lt;li&gt;it doesn’t behave like a reusable system&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So it’s more “effect” than “simulation pipeline”.&lt;/p&gt;




&lt;h2&gt;
  
  
  What MotionKit actually brings to the table
&lt;/h2&gt;

&lt;p&gt;This is where the gap becomes obvious.&lt;/p&gt;

&lt;p&gt;MotionKit is not trying to compete with Figma’s timeline.&lt;/p&gt;

&lt;p&gt;It’s extending it in the directions where real motion work breaks down.&lt;/p&gt;




&lt;h3&gt;
  
  
  1. True Frame-by-Frame (FBF) system
&lt;/h3&gt;

&lt;p&gt;MotionKit supports proper FBF workflows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;synced frame structure&lt;/li&gt;
&lt;li&gt;mirror selection across frames&lt;/li&gt;
&lt;li&gt;layer consistency enforcement&lt;/li&gt;
&lt;li&gt;editing one layer across all frames at once&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This turns FBF from “manual duplication” into an actual workflow.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. Nested animation support
&lt;/h3&gt;

&lt;p&gt;MotionKit introduces structured animation layers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;animations inside frames&lt;/li&gt;
&lt;li&gt;reusable nested motion blocks&lt;/li&gt;
&lt;li&gt;hierarchy-aware timelines&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So instead of flat motion, you get:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;animation systems inside animation systems&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  3. Physics baked into keyframes
&lt;/h3&gt;

&lt;p&gt;This is a big one.&lt;/p&gt;

&lt;p&gt;Instead of just simulating motion visually:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;you define physics (gravity, bounce, mass)&lt;/li&gt;
&lt;li&gt;MotionKit simulates it&lt;/li&gt;
&lt;li&gt;then &lt;strong&gt;bakes it into real keyframes&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So everything becomes editable afterward.&lt;/p&gt;

&lt;p&gt;No black box.&lt;/p&gt;




&lt;h3&gt;
  
  
  4. Full timeline control + modifiers
&lt;/h3&gt;

&lt;p&gt;Beyond keyframes, MotionKit adds:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Offset modifiers&lt;/li&gt;
&lt;li&gt;Wiggle procedural motion&lt;/li&gt;
&lt;li&gt;curve-level editing&lt;/li&gt;
&lt;li&gt;editable baked simulations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So motion becomes &lt;em&gt;programmable&lt;/em&gt;, not just draggable.&lt;/p&gt;




&lt;h3&gt;
  
  
  5. Two-way sync with Figma Motion
&lt;/h3&gt;

&lt;p&gt;This is probably the most important difference.&lt;/p&gt;

&lt;p&gt;MotionKit doesn’t replace Figma Motion — it connects to it.&lt;/p&gt;

&lt;p&gt;You get &lt;strong&gt;bidirectional sync&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Figma Motion → MotionKit import&lt;/li&gt;
&lt;li&gt;MotionKit edits → back into Figma system&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;prototype quickly in Figma Motion&lt;/li&gt;
&lt;li&gt;refine deeply in MotionKit&lt;/li&gt;
&lt;li&gt;move back and forth without losing structure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s the real workflow upgrade.&lt;/p&gt;




&lt;h2&gt;
  
  
  Simple comparison
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Figma Native Motion&lt;/th&gt;
&lt;th&gt;MotionKit&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Timeline&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes (advanced)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Frame-by-frame&lt;/td&gt;
&lt;td&gt;Limited / manual&lt;/td&gt;
&lt;td&gt;Native system&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nested animations&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Physics&lt;/td&gt;
&lt;td&gt;Basic / experimental&lt;/td&gt;
&lt;td&gt;Fully baked keyframes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Text content animation&lt;/td&gt;
&lt;td&gt;Limited&lt;/td&gt;
&lt;td&gt;Structured support&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sync with Figma&lt;/td&gt;
&lt;td&gt;Native only&lt;/td&gt;
&lt;td&gt;Two-way sync&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Workflow depth&lt;/td&gt;
&lt;td&gt;Prototype level&lt;/td&gt;
&lt;td&gt;Production level&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  When Figma Motion is enough
&lt;/h2&gt;

&lt;p&gt;Use Figma Motion if:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;you’re building UI prototypes&lt;/li&gt;
&lt;li&gt;you just need simple transitions&lt;/li&gt;
&lt;li&gt;you don’t care about animation systems&lt;/li&gt;
&lt;li&gt;speed matters more than control&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  When MotionKit becomes necessary
&lt;/h2&gt;

&lt;p&gt;Use MotionKit if:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;you’re doing real motion design work in Figma&lt;/li&gt;
&lt;li&gt;you need frame-by-frame animation control&lt;/li&gt;
&lt;li&gt;you care about reusable animation systems&lt;/li&gt;
&lt;li&gt;you want physics + keyframes together&lt;/li&gt;
&lt;li&gt;you need structured workflows, not hacks&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The real takeaway
&lt;/h2&gt;

&lt;p&gt;Figma Motion is finally becoming a &lt;strong&gt;real animation layer inside design tools&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;But MotionKit exists in a different layer entirely:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;turning Figma into a motion design system, not just a prototyping tool.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That gap is still very real.&lt;/p&gt;

&lt;p&gt;And for anyone doing serious animation work inside Figma — it shows up immediately.&lt;/p&gt;

</description>
      <category>figma</category>
      <category>motion</category>
      <category>motionkit</category>
      <category>figmamotion</category>
    </item>
  </channel>
</rss>
