Code Monkey home page Code Monkey logo

devforth / scriptimate Goto Github PK

View Code? Open in Web Editor NEW
46.0 6.0 7.0 6.6 MB

OpenSource SVG animation tool: Animate qualitative SVG files (e.g. exported from Figma or any other vector image editor) with simple scripting language and compile them into WEBM/MP4/GIF

Home Page: https://tracklify.com/blog/scriptimate-an-open-source-tool-to-create-svg-animations-in-a-coding-way/

License: MIT License

HTML 99.22% JavaScript 0.78%
animation animations ffmpeg video gif gifs mp4-video scripting animate animation-engine

scriptimate's Issues

Feature request - Add ability to run a single group and make it repeatable

Full disclosure, I tried to make this work by creating a dummy group:

define_group _:
    animate_100 pause

and then used run_groups_together <some-group> _ which works out fairly well and allows me to use define_group for grouping commands together even when I do not want to run multiple groups in parallel.

It would be nice to have a different command, for example, run_group <single-group>, which does the same thing so I can avoid this hack.

Additionally, it would be nice to have the ability to be able to run the same group multiple times, I have some sub-loops that I want to run 2 or 3 times (interleaved with other stuff). This does not seem to be currently possible. Repeated invocations of run_groups_together seem to be ignored.

Non-critical error in output: Running without translations.yml

If no translations.yml file is present in the working directory the following error message is printed:

Running without translations.yml [Error: ENOENT: no such file or directory, open './/translations.yml'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: './/translations.yml'
}

This does not seem to be a critical error, in fact the logic suggests that program switches to using default language in this case: src.

Suggest using a logger instead of console.log and logging this error at warning level. Additionally, the program should first check if the translations.yml file exists at all. If it is missing that should be logged at debug level. Any other errors while reading/parsing the file should be logged at a higher level.

Feature request: Introduce alias to allow multiple svgs to be used simultaneously

I am creating an animation where multiple messages (envelope svg) are moving around in a system. I would like to be able to use a single svg file but have multiple instances be present simultaneously but independently (each has their own position, opacity, and scale, etc.).

Currently this can be achieved by using symlinks to create multiple copies of the original svg file.

Suggest introducing an alias command which takes an svg name and creates an alias which from that point forward can be used similar to how the svg name is used directly.

Example (assuming a src/message.svg exists):

set_frame_size 600 300
alias message m1
alias message m2

place m1 0 100
animate_1000 pause
place m2 200 100 1 2

fs.rmdir deprecation warning

The following node deprecation warning is showing up in the output:

(node:1) [DEP0147] DeprecationWarning: In future versions of Node.js, fs.rmdir(path, { recursive: true }) will be removed. Use fs.rm(path, { recursive: true }) instead
(Use `node --trace-deprecation ...` to show where the warning was created)
node:internal/process/promises:279
            triggerUncaughtException(err, true /* fromPromise */);
            ^

This is probably being triggered by this line

Error if frames folder doesn't exist

Running the tool in a location where the frames/ sub-folder doesn't already exists results in the following error:

[Error: ENOENT: no such file or directory, stat './/frames'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'stat',
  path: './/frames'
}

This is probably caused by the fs.rmdir call on this line. The likely fix is to first check for existence before the folder is removed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.