This project is read-only.

Project Description

Artefact Animator provides an easy to use framework for procedural time-based animations in Silverlight and WPF.

Inspired by the Flash community and forged out of frustration, Artefact Animator brings to WPF and Silverlight what Tweener has done for Flash. If you’ve ever tried to get into animation in C# you’ll soon realize there are way too many steps to get you where you need to be. The consequences are that developers don’t love to animate UI and designers are limited by what they can animate when working with dynamic content.

For more samples + code, head over to the Examples Page.

So how do I use it?

ArtefactAnimator.AddEase ( object, properties, values, time, ease, delay );
Pretty easy right?

And that’s just the tip of the iceberg. But before you say to yourself, “I’ve already seen something like that before” let’s check out some features...


Easy to use
  • Animate multiple properties with just one line of code!
  • Use strings as shortcuts to animations like “x”, “y”, “alpha”, and more!
  • Extensions help reduce coding time by wrapping common animations.
    • SlideTo will animate an UIElement’s Canvas.Top and Canvas.Left properties
    • AlphaTo will animate a UIElement’s Opacity
Smooth animations
  • Artefact Animator updates every time the UI layer refreshes using CompositionTarget.Rendering. This allows for the most responsive animations possible.
  • Limited error checking to increases performance
Easing support
  • Includes ported Robert Penner easing equations ( WPF ) ( from DoublePennerAnimation )
  • Includes native easing equations ( Silverlight )
  • Allows custom easing functions
Custom Animation support ( Advanced )
  • Animate any property you want with very little effort
    • Create your own custom wrapper using getter/setter functions
    • Register your custom animations and reference them by name later
Smart System
  • Animations don’t conflict resulting in smooth transitions from one call to the next
  • Call the SlideTo method 1000 times with delays and never worry - the latest animation will always take over when it starts.
  • If errors occur when easing your program is not affected, the ease is simply stopped
  • Begin, Update, Completed, and Stopped events
    • Perfect for sequencing and callbacks
  • Add callbacks via extensions to maintain calls on one line
    • easeObject.OnBegin( beginHandler ).OnUpdate( updateHandler ).OnComplete( completeHandler );
  • An EaseObjectGroup can be used to report when a group of animations have been completed
  • Includes methods to make sure an objects transform group is in place and in the right sequence before animating any transforms – UIElement.NormalizeTransformGroup()
  • Doesn’t use Storyboards so every aspect of Artefact Animator can be customized and controlled by you.
  • Constructs animations through composition resulting in the ability to extend functionality later on.
  • Adding an Ease to Artefact Animator will produce an EaseObject that allows you to Start or Stop that animation anytime.

It’s flexible, fast, expandable, and is a super easy transition for coders coming from Flash.


Keep in mind this is the first public release of one of Artefact's internal tools. Documentation is sparse and it hasn’t been put through the fire so it’s still a bit wet behind the ears. Maybe after some people get hold of it it’ll morph into something completely different. That being said it’s a great prototyping tool and we expect it to mature quickly.

More From Artefact

Learn more about Artefact, explore the latest projects in Artefact's portfolio or discover other projects Jesse Graupmann has worked on.

Last edited Jan 14, 2014 at 6:50 AM by jgraup, version 31