Sign up for the newsletter

Signup for the Newsletter

Check out neat free 2D animation package VPaint

Saturday, August 8th, 2015 | Posted by Jim Thacker

The technology underlying VPaint 1.5, graphics researcher Boris Dalstein’s intriguing new open-source 2D animation package. The tool creates resolution-independent vector animations that mimic moving 3D objects.

Originally posted on 13 June. Scroll down for details of the beta release.

University of British Columbia PhD student and Pixar intern Boris Dalstein has announced VPaint 1.5, an intriguing open-source 2D animation package, based on his research into vector graphics.

As part of Dalstein’s Siggraph 2014 presentation, co-authored with Michiel van de Panne and Rémi Ronfard, the tool went through a few beta builds as VPaint 1.0, but was bumped up to 1.5 when animation was added.

Create vector animations that mimic moving 3D objects
We don’t normally write about 2D animation tools, but VPaint’s underlying tech seemed too cool not to cover.

Its ‘topological keyframing’ methodology allows key vertices of a vector shape to split or merge over time, enabling the software to interpolate between frames in ways that would otherwise be impossible.

The result is a vector animation that can mimic an object moving in 3D space, with different parts of the form being obscured or revealed behind others.

Draw or ‘sculpt’ vector strokes, then have them inbetweened automatically
In terms of specific features, VPaint provides an infinite canvas on which to draw, with the software automatically smoothing and snapping freehand strokes. It supports Wacom tablets, so stroke width is pressure-sensitive.

As well as drawing new strokes, users can ‘sculpt’ existing ones – a workflow described by Dalstein as being ‘à la ZBrush’.

The animation toolset supports automatic inbetweening, motion pasting and retiming; while display options include side-by-side views of different frames, onion-skinning, and the novel ‘3D view’ shown in the video.

The software saves projects in an XML-based vector format, but you can export frames as a series of SVG or PNG files – as yet, there’s no option to export SVG or bitmap animation directly.

Still quite a few important features to come
The VPaint website is still essentially just a holding page, but Boris Dalstein has sent us a complete list of what will and won’t be included in version 1.5, which you can find at the foot of the story.

Key features missing from the initial release include clipping, layers, grouping, and support for anything other than flat colour fills – though Dalstein says that these are all planned for future versions.

Updated 8 August: VPaint 1.5 is now available in beta for Windows Vista and above, Mac OS X and 64-bit Linux – although you currently have to install the Linux version from a binary. More info via the link below.

Visit the VPaint website
(Includes download links, and more information about the Linux version)

Complete list of features planned for VPaint 1.5


  • Infinite resolution-independent canvas (pan/zoom as much as you want)


  • Free-hand sketching of vector strokes
  • Wacom tablet support: pressure can be used to draw variable-width strokes
  • Automatic neatening/smoothing of free-hand strokes
  • Automatic snapping of end strokes to existing end strokes or stroke intersections

Sculpting (sculpt strokes “à la ZBrush”)

  • Local stroke pushing
  • Local stroke smoothing
  • Local stroke width editing

Stroke connectivity:

  • Awareness of stroke connectivity (i.e., which strokes are incident and/or intersecting)
  • Stroke connectivity can be locally disabled (i.e., overlapping strokes ignoring one another)
  • Drag-and-drop end points and/or intersection points while preserving stroke connectivity
  • Drag-and-drop entire strokes while preserving stroke connectivity


  • Manual coloring: fill a region by selecting the strokes in its boundary
  • Automatic coloring: Use the paint bucket for automatic filling of a region bounded by strokes
  • Support for holes (equivalent of “compound paths” in SVG)

Filled regions connectivity:

  • Awareness of filled region connectivity (i.e., which filled region share one or several bounding strokes)
  • Filled regions “remember” which strokes define their boundary
  • Editing strokes automatically updates all filled regions using these strokes in their boundary
  • Drag-and-drop end points, intersection points, strokes, or filled regions while preserving filled region connectivity

Topological operator:

  • Glue stroke end points together
  • Glue strokes together
  • Split strokes in two sub-strokes
  • Detach connected strokes
  • Split filled regions
  • Detach connected filled regions

Depth Ordering:

  • Change depth ordering of strokes and filled regions independently


  • Timeline with classical controls: play / pause / go to first, previous, next, or last frame / set fps
  • Frame-by-frame animation: draw every frame of the animation if desired
  • Automatic inbetweening: automatically interpolate manually designated strokes
  • Onion skinning visualization: overlay several frames of the animation in the same 2D view
  • Side-by-side visualization: arbitrary split the view horizontally/vertically, each 2D view being able to visualize a different frame of the animation
  • Motion-pasting: copy-paste the selection at a different frame, with automatic inbetweening
  • Autokey: dragging an inbetween stroke creates a key stroke
  • Local keyframing: a given frame can be composed both of key strokes and inbetween strokes
  • Retiming: the frame associated with each key strokes can be refined
  • D view: visualize your 2D animation as a 3D space-time structure where time is the Z axis.


  • Save/Load in .vec (new XML-based vector graphics format)
  • Export individual frames as SVG or PNG

And the following will NOT be included due to lack of time, but are planned in future versions:

  • Color gradients for strokes and filled regions
  • More styling option for strokes: rounded/miter/bevel caps and joins, dash patterns, etc…
  • Masking/Clipping
  • Layers
  • Grouping (some grouping ability is already achievable using the “select connected objects” feature)
  • Export as bitmap video (e.g., h264 encoding)
  • Export as SVG animation
  • Import bitmap files for tracing

Tags: , , , , , , , , , , , , , , , , , , , , , ,


You can follow any responses to this entry through the RSS 2.0 feed.

© CG Channel Inc. All Rights. Privacy Policy.