Git Product home page Git Product logo

danimator's People

Contributors

danborufka avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

max3a3 studioroop

danimator's Issues

Keyframes: Merge keyframes overlapping in time

When a property animation continues right away, the two keyframes now simply overlap:

  o--o
     o--o   (y-axis offset demonstration)

When they should be controllable thru a single keyframe:

  o--o--o

Make states linearly animatable thru morphs

Status quo

States aren't animating but rather have constant interpolation.

Desired state

Internal _stateFloat to transition from one state to the other using Danimator.morph(…)

  • devise keyframes interface for morphed states

Loading of animations

  • automatic loading of animations via AJAX for engine
  • parsing of animations and reattaching of live scene data
  • automatic loading of animations via AJAX for editor

Audio: trigger sounds asynchronously

Status quo

Scrubbing of time gets performance hits from triggering sound

Desired result

Sounds to be started asynchronously so time scrubbing isn't affected

Layers: Account for Illustrator layers

Status Quo

Although every item gets a separate layer in our layer panel, the separate layers coming from Illustrator are ignored and only the first one is being used.

Desired State

Have Illustrator layers translated into the scene like items are

  • check how Paper.js handles layers
  • extend item import loop to walk through layers too
  • feed layer panel with acquired structure

Implement Save(As) SVG

  • export SVG from paperJS and inject data-names
  • implement saving on server-side
  • add "unsaved" indicator (*) to window title
  • set to unsaved everywhere SVG structure might be changed
  • add automatic gzip compression

Create Examples

Let's create a few Danimator examples for Github!

MVP

  • for animated stroke .growth
  • for .attachToPath & .offsetOnPath
  • for frame animations
  • for state animations & morphs

2.0

  • for audio module
  • for effectors

Fix states of subitems

When setting the state of an item's descendants, the descendants don't inherit the state.
e.g.:

bear.setState("snout.a");    // will change snout's state to "a" inside bear
bear.find("snout").state     // will return undefined :(

SaveAs

  •  Save SVG as download
  •  Save animation as download
  •  Save metadata as download

Make animations triggerable

  • save triggers as String references to tracks in ani.json
  • make ranges editable (delay, duration, triggerName)
  • prevent auto-firing of animations registered as triggers
  • split-up Danimator.load() into Danimator.load(/*w/o playing*/), Danimator.loadAndPlay(), and Danimator.trigger()

Animations: snapping broken

Snapping steps don't take into account that they need to be removed once keyframes' time has been tempered with.

  • move into experiments for now and take out of production code
  • add context parameter to Snappables.prototype.add in order to add/remove snapping steps in a grouped fashion
  • add removal of steps that are being recalculated (to avoid dups or leftovers)

Introduce interface reactivity

MVP

  • use _createTrack for single elements rather than rerendering the whole panel every time
  • same for _createProp
  • …and _createLayer
  • move class methods to prototype
  • use requestAnimationFrame where too many events would be triggered otherwise
  • rewrite sceneElement to class
  • move sceneElement methods to prototype
  • fix keyframe-dragging bug

Clean

  • add react.js
  • replace _.template templating by something react-based
  • replace all refresh calls (_createTrack, _createProp, …) by reactivity

Keyframes: Make animation labels editable

Make doubleclick of tracks edit ranges (including their naming) instead of complicatedly adding keyframes

  • devise interface for range editing
  • replace doubleclick handler
  • tie animation labels together with tracks (so it can later be saved in .ani.json)

Implement Save(As) JSON

  • export JSON from animation tracks for server
  • implement saving on server-side
  • allow saving of arbitrary scene meta-data
  • add "unsaved" indicator (*) to window title
  • set to unsaved everywhere SVG structure might be changed
  • add automatic gzip compression

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.