Hacker News new | ask | show | jobs
by pierscowburn 891 days ago
Hi all – co-founder and CTO here.

Over the past two years we’ve built Modyfi, a non-destructive design and image making app that combines a high-performance, raster-based rendering engine written in Rust and wgpu with a multi-player backend.

We’ve brought together the familiar UI layers-based concepts of conventional image editing apps like Photoshop, Affinity Photo, etc, with the powerful functional data flow concepts of procedural design software such as Touch Designer/Houdini and the multiplayer editing capabilities of Figma. When the user performs an operation on part of their composition, we don’t mutate the original bitmap (which would be a destructive change) but instead record all necessary metadata about the change that the user performed, so that the outcome of the operation can be deterministically reproduced. While this is not a new concept, and there are ways to achieve non-destructive edits in other image-editing apps, Modyfi is non-destructive by default.

Holistic non-destructivity has several advantages: 1) The user can change their mind about the exact parameters used for modifications they’ve made to their project at any time; 2) It dramatically simplifies the challenge of implementing multiplayer bitmap-heavy design work, especially with regards to handling merge conflicts; 3) It reduces the amount of data that needs to be sent over the network.

In putting together a design (i.e. adding elements to the layers stack), users are essentially building a procedural rendering pipeline without necessarily knowing it. All of the effects the user adds to their project are executed on the GPU, and are re-evaluated in realtime whenever a change is made. We built an efficient processing graph that only re-evaluates the parts that changed, and reuses results across subtrees where possible, in order to make it fast and fluid to interact with.

After initially starting out to build an image editor, we realized that the stack we’d created was equally well suited to motion graphics and added motion design to the app last month. Thanks to the high-performance stack, we’ve been able to make the motion editing experience fully interactive – so you can continue to edit your design while it’s playing, which is something that isn’t possible in most motion graphics tools.

Because of the non-destructive workflows, combined with a library of first party shaders (modifiers), and soon, user-generated shaders (we’re launching an in-app shader editor next month), designers and creatives with no coding experience are able to achieve static and animated visuals that previously required a creative coding skillset.

We launched our beta in August – it’s still very early days and there’s definitely a lot more to do! We’d love your feedback.