Skip to content

mattdesl/looom-tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

looom-tools

A suite of JavaScript-based tools for parsing and rendering Looom animation software files. This project is experimental/WIP.

✨ Web Exporter → looom-tools.netlify.app

Looom

Looom is an experimental animation software for iOS tablets, which allows you to draw and animate short loops like this:

animation

This is the "Earthy" loop that comes packaged with Looom

The drawings are recorded as vector shapes, and saved as SVG on your iPad, so they can be accessed and shared from the Files application.

Looom-Tools

This package and website is a small suite of tools for working with Looom's SVG files, allowing you to render them in real-time on the web, re-export them with different settings, and parse and restructure them programmatically. In this way, Looom could be used as a general purpose animation software for the web, in the way that Lottie is often used for scalable web animations.

Website

One facet of this project is an easy-to-use web renderer and exporter, allowing for GIF/MP4/WebM exporting of your loops. See looom-tools.netlify.app.

Parsing API / CLI

Another facet of this project is parsing the .SVG files from Looom into a more manageable JSON format. This could be useful for developers wishing to build more extensions/hacks/renderers on top of the file format.

This is still WIP.

Rendering API

The third part of this project is a working web-based renderer of the parsed JSON file that achieves feature parity with Looom, as well as a few additional features. This can help make Looom a more general purpose animation framework for the web, in the way that Lottie is often used for web animations, and also provides a reference for those wishing to implement custom renderers (such as with WebGL or another framework) for more specific features.

The current renderer uses Canvas2D, as it seems to be able to achieve feature parity with Looom.

This is still WIP.

What this Enables

Once you start hacking the Looom files, you can do a lot of interesting things that aren't yet possible in the app, such as:

  • Processing & cleaning up jagged/low-detail curves (this library includes a {resamplePaths} option)
  • Changing colors and other rendering parameters procedurally
  • Exporting at specific dimensions and formats (SVG/PNG frames, MP4/GIF)
  • Combining weaves to create animations with more than 5 threads, or higher frame rate / frame counts
  • Introducing real-time interactivity to your loops
  • & more...

Progress

If you'd like to contribute, please open an issue. Some things still need to be worked on:

  • Docs & API cleanup
  • CLI tool for converting Looom SVG to JSON (allowing for a slimmer web parser)
  • Improving polyline offsetting code for edge cases
  • Testing different files to ensure feature parity with Looom
  • Examples of more interactive loops
  • Improving the overall UX/UI and design of the website.

License

MIT, see LICENSE.md for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published