<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.inkscape.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Freedo</id>
	<title>Inkscape Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.inkscape.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Freedo"/>
	<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/Special:Contributions/Freedo"/>
	<updated>2026-04-29T13:10:58Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Extension_repository&amp;diff=94778</id>
		<title>Extension repository</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Extension_repository&amp;diff=94778"/>
		<updated>2015-01-14T17:56:17Z</updated>

		<summary type="html">&lt;p&gt;Freedo: /* SWF output */ Add link to updated version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It would be very useful to have a central Internet repository for Inkscape extensions, in a similar manner to Firefox. This way, Inkscape could update installed extensions from the web site, with no need for the user to know if an extension was updated.&lt;br /&gt;
&lt;br /&gt;
== Extensions ==&lt;br /&gt;
&lt;br /&gt;
===[[ExtrudeEffect]]===&lt;br /&gt;
Extrude polygons to &amp;quot;3d&amp;quot;, also make &amp;quot;string art&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===[http://wiki.colivre.net/Aurium/InkscapeCalendarShellScript InkscapeCalendarShellScript]===&lt;br /&gt;
Creating calendars sucks or is impractical if you do not have something that automates the process of putting the days organized in blocks of months for you. To format manually is easy, but this extension can help you on this too Bash script, works for Win32 with Cygwin.&lt;br /&gt;
&lt;br /&gt;
===[http://wiki.colivre.net/Aurium/InkscapeAreaCuter InkscapeAreaCutter]===&lt;br /&gt;
For web designers. Slice your site design into .png images. (pt_BR)&lt;br /&gt;
&lt;br /&gt;
===[http://www.julienvitard.eu/ EQTeXSVG]===&lt;br /&gt;
Convert an inline LATEX equation into SVG path using Python.&lt;br /&gt;
&lt;br /&gt;
===[http://www.kono.cis.iwate-u.ac.jp/~arakit/inkscape/inklatex.html InkLaTeX]===&lt;br /&gt;
Insert LaTeX text or equations into Inkscape.&lt;br /&gt;
&lt;br /&gt;
===[http://www.iki.fi/pav/software/textext/ TexText]===&lt;br /&gt;
Embed re-editable LaTeX objects into SVG drawings.&lt;br /&gt;
&lt;br /&gt;
===[http://math.univ-lille1.fr/~barraud/Inkscape/pathdeform/ PathDeform]===&lt;br /&gt;
Bend a path according to another one. &lt;br /&gt;
N.B. This extension was added to Inkscape 0.45 as &amp;quot;Pattern along Path&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===[http://www.inkbar.lineaire.net/ InkBar]===&lt;br /&gt;
Create EAN13 bar codes.&lt;br /&gt;
&lt;br /&gt;
===[http://technoargia.free.fr/swftools/ SWF output]===&lt;br /&gt;
Save drawings as SWF. Updated version (compatible with Inkscape 0.48) ist available on [https://gist.github.com/frederik-elwert/1a46f82fce5d3deb7842 GitHub].&lt;br /&gt;
&lt;br /&gt;
===[http://wiki.colivre.net/Aurium/Puff Puff]===&lt;br /&gt;
Fluffs elements! :D&lt;br /&gt;
&lt;br /&gt;
===[http://www.colivre.coop.br/Aurium/InkSudoku Sudoku Generator]===&lt;br /&gt;
Generates a Sudoku square with its solution (''in a small square if you want'').&lt;br /&gt;
&lt;br /&gt;
===[[CalligraphedOutlineFill]]===&lt;br /&gt;
Helps to fill in the inside area of shapes drawn with the Calligraphy tool.&lt;br /&gt;
&lt;br /&gt;
===[http://edlab.die.unipd.it/Site4.html SlotStar]===&lt;br /&gt;
Helps to draw the star of slot of a winding of an electrical machine&lt;br /&gt;
&lt;br /&gt;
===[http://richard.henwood.googlepages.com/inkscapelatexextension inkscapeLatexExtension]===&lt;br /&gt;
Extract text in an SVG drawing to a LaTeX picture environment.&lt;br /&gt;
&lt;br /&gt;
===[http://saws.googlecode.com s.a.w.s]===&lt;br /&gt;
Export an SVG as valid XHTML/CSS files.&lt;br /&gt;
&lt;br /&gt;
===[http://www.colivre.coop.br/Aurium/InkscapeGenerator Generator]===&lt;br /&gt;
Replace text and data to automatically generate files (as PDF, PS, JPG, etc...), based on an SVG template and a data file. eg a CSV file&lt;br /&gt;
&lt;br /&gt;
===[http://code.google.com/p/inkscape2tikz/ TikZ exporter]===&lt;br /&gt;
Export SVG paths as TikZ/PGF code for use with LaTeX.  &lt;br /&gt;
&lt;br /&gt;
===[[FindMatch]]===&lt;br /&gt;
Looks for paths that match the selected path and places all matches on the same layer.&lt;br /&gt;
&lt;br /&gt;
===[http://emilien.tlapale.com/code/inksyntax InkSyntax]===&lt;br /&gt;
A source code syntax highlighter plugin for Inkscape (wrapping [http://pygments.org pygments] and [http://www.andre-simon.de/doku/highlight/en/highlight.html highlight]).&lt;br /&gt;
&lt;br /&gt;
===[http://sites.google.com/site/placeonpath/ Place Objects on Path]===&lt;br /&gt;
Places objects on a curve. The curve is the object that has the lowest z-order (and which must be a path). Distances between objects remain the same as they were before placing. If objects can't be placed on the curve because of their distances they are left in place. Objects will not be modified; clones are allowed. Arrange distances between your objects manually first as curve position and direction.&lt;br /&gt;
&lt;br /&gt;
===[http://code.google.com/p/jessyink/ JessyInk]===&lt;br /&gt;
A collection of Javascripts that can be embedded into an SVG file to produce slide shows on opening in a browser. Current releases of JessyInk include a number of inkscape extensions to assign effects, transitions and other aspects of the presentations.&lt;br /&gt;
&lt;br /&gt;
===[http://svg2dxf.googlecode.com/files/svg2dxf_inkscape.zip svg2dxf]===&lt;br /&gt;
Updated version of [http://www.bobcookdev.com/inkscape/inkscape-dxf.html Better Better DXF output] which adds support for polylines and does not overwrite the default inkscape simpletransform.py. See README if getting lxml xpath errors.&lt;br /&gt;
&lt;br /&gt;
===[http://code.google.com/p/pixelsnap/ PixelSnap]===&lt;br /&gt;
Tool for aligning object/paths onto the pixel grid for bitmap export.&lt;br /&gt;
&lt;br /&gt;
===[http://code.google.com/p/inkscape-guides-creator/ Guide creator]===&lt;br /&gt;
Creates multiple guides at once, at set intervals. &lt;br /&gt;
&lt;br /&gt;
===[http://code.google.com/p/inkscapescalegenerator/ Scale Generator]===&lt;br /&gt;
Create ruler scales / map scales.&lt;br /&gt;
&lt;br /&gt;
===[http://code.google.com/p/scott-inkscape/wiki/SevenSegmentDigits Seven Segment Digits]===&lt;br /&gt;
Create calculator style digits.&lt;br /&gt;
&lt;br /&gt;
===[http://www.cnc-club.ru/forum/viewtopic.php?f=15&amp;amp;t=37&amp;amp;p=92 Close curves]===&lt;br /&gt;
Closes all open paths in the selection.&lt;br /&gt;
&lt;br /&gt;
===[http://www.cnc-club.ru/forum/viewtopic.php?f=15&amp;amp;p=101 Gcode tools]===&lt;br /&gt;
Generates Gcode program (used in CNC machinery) from given paths.&lt;br /&gt;
&lt;br /&gt;
===[http://dp48069596.lolipop.jp/inkscape_script.html Closeoff, Scatterpath, Selection, Zigzag and Netting]===&lt;br /&gt;
See [http://dp48069596.lolipop.jp/inkscape_video.html] for how to use Zigzag and scater extensions.&lt;br /&gt;
&lt;br /&gt;
===[http://wiki.xmoto.tuxfamily.org/index.php?title=How_to_create_smooth_levels_using_Inkscape Inksmoto]===&lt;br /&gt;
Level editor for the Xmoto game.&lt;br /&gt;
&lt;br /&gt;
===[http://www.cnc-club.ru/forum/viewtopic.php?f=33&amp;amp;t=37 Close Curves]===&lt;br /&gt;
Extension to close the paths in the selection, useful for importing filled paths into openoffice.&lt;br /&gt;
&lt;br /&gt;
===[http://kalyaev.com/2010/20100423/gcodetools.html gcodetools]===&lt;br /&gt;
Gcodetools is a plug-in for Inkscape. It prepares and converts paths from Inkscape to Gcode, using biarc interpolation. for use with CNC milling machines.&lt;br /&gt;
&lt;br /&gt;
===[http://www.signcutpro.com/SignCut-Productivity-Pro/signcut-export-plugins.html SignCut Export]===&lt;br /&gt;
Set of extensions that come with SignCut to enable Inkscape users to use plotters / cutters via the SignCut software.&lt;br /&gt;
&lt;br /&gt;
===[http://www.lysator.liu.se/~perni/iboardgameexts/ Boardgame extensions]===&lt;br /&gt;
Inkscape Extensions for Boardgame Developlemt [http://www.boardgamegeek.com/thread/299033/inkscape-extensions-for-boardgame-developlemt 1]. Includes a hexagonal board/hexmap creator and tools to sheets of tiles for counters ect.&lt;br /&gt;
&lt;br /&gt;
===[http://camm-gl.dyndns.org/ Inkscape CAMM-GL Extension]===&lt;br /&gt;
... vinyl cutting utility for Inkscape&lt;br /&gt;
&lt;br /&gt;
This program is basically just a cut manager. Create artwork in Inkscape, save with the supplied hpgl_output extension, and cut or plot with this program. The program does provide some useful functions, but it is by no means a fully featured solution. I do use it exclusivly, and it currently satisfies my needs.&lt;br /&gt;
&lt;br /&gt;
===[http://salug.it/~fabioviola/inkscape/extensions Badge Renderer]===&lt;br /&gt;
... A little script to render a badge in a Inkscape document. &lt;br /&gt;
This is only a little python script used as example in an article for my GLUG (SaLUG!) journal. This can be used to quickly render a badge. It can be improved, for example, with shadow direction and reflex direction. As soon as possible I'll do it.&lt;br /&gt;
&lt;br /&gt;
===[http://www.craigmarshall.org/archives/8 Guillotine]===&lt;br /&gt;
This is a mirror of the GIMP guillotine function, it allows you to drag guides onto the canvas, and then using Export-&amp;gt;Guillotine, export those slices as pngs to the directory and filename of your choice. It also has an option for using export hints, if your drawing has previously been exported. [http://www.inkscapeforum.com/viewtopic.php?f=11&amp;amp;t=5832 Forum link]&lt;br /&gt;
&lt;br /&gt;
===[http://code.google.com/p/inkscape-replace-font/ Replace Font]===&lt;br /&gt;
Allows mass replacement of the fonts in a document. Can list existing fonts. [http://www.inkscapeforum.com/viewtopic.php?f=11&amp;amp;t=5843 Forum link]&lt;br /&gt;
&lt;br /&gt;
=== [http://sozi.baierouge.fr/wiki/doku.php?id=en:welcome Sozi] ===&lt;br /&gt;
A tool for presentations made using zooms and rotations, not just slides. Uses Javascript added to the .svg file to display in web-browsers&lt;br /&gt;
&lt;br /&gt;
===[http://www.inkscapeforum.com/viewtopic.php?f=11&amp;amp;t=5943 CMYK pdf/tiff export]===&lt;br /&gt;
Extension to export to CYMK colourspaced PDFs / Tiffs. In development (september 2010)&lt;br /&gt;
&lt;br /&gt;
===[http://sourceforge.net/projects/o-scape/ O-Scape; Orienteering map making tools]===&lt;br /&gt;
Extensions to help make Orienteering maps; see this [http://www.nopesport.com/news/1343-o-scape-free-orienteering-mapping-software interview] for more information&lt;br /&gt;
&lt;br /&gt;
===[http://www.inkscapeforum.com/viewtopic.php?f=5&amp;amp;t=4729#p32019 Mirror]=== &lt;br /&gt;
Mirror a path along any axis.&lt;br /&gt;
&lt;br /&gt;
===[http://sourceforge.net/projects/inkscape-tables/ Tables in Inkscape]===&lt;br /&gt;
Adds (experimental?) table suport as an extension.&lt;br /&gt;
&lt;br /&gt;
===[http://doctormo.org/2011/05/19/deviantart-plugins-released/ deviantArt uploaders]===&lt;br /&gt;
Upload artwork to deviantArt from the &amp;quot;publish to&amp;quot; menue item under extensions.&lt;br /&gt;
&lt;br /&gt;
===[http://code.google.com/p/inkscape-music-scale-generator/ Musical scales]===&lt;br /&gt;
Extension for automatic generation schemes of musical scale and chords on piano.&lt;br /&gt;
&lt;br /&gt;
===[http://www.inkscapeforum.com/viewtopic.php?f=11&amp;amp;t=9212 Text from CSV]===&lt;br /&gt;
Extension to enter text from a CSV file&lt;br /&gt;
&lt;br /&gt;
===[http://luther.ceplovi.cz/git/inkscape-ungroup-deep.git/ Deep Ungroup]===&lt;br /&gt;
Ungroup all groups in the selected object.&lt;br /&gt;
&lt;br /&gt;
===[http://www.pernsteiner.org/inkscape/layerclip/ Layer Clip]===&lt;br /&gt;
This is a a set of Inkscape extension scripts for setting and removing clip paths for entire layers. Inkscape has no trouble rendering or editing layers with clip paths, but it currently has no built-in method of setting the clip path for a layer, this is the purpose of these extensions.&lt;br /&gt;
&lt;br /&gt;
Features include: Clip containing layer, Clip layer above, Clip layer below, Clip parent layer.&lt;br /&gt;
&lt;br /&gt;
'''''Notes:'''&lt;br /&gt;
''You must select an object in the clipping layer before applying the extension, otherwise you will receive an error message.&lt;br /&gt;
It is a good idea to lock the layer after the extension has been applied. You may also require hiding the clipping layer when using &amp;quot;Clip layer below&amp;quot;. This may be exploited to create a masking layer.&lt;br /&gt;
Tested on Inkscape 0.48.2 r98''19''&lt;br /&gt;
&lt;br /&gt;
===[https://bitbucket.org/daviddamerell/inkscapesaveasicoextension Icon Generation]===&lt;br /&gt;
This is an Inkscape output extension that adds an option to the &amp;quot;save-as&amp;quot; dialog box to generate Windows Icon files (*.ico).&lt;br /&gt;
&lt;br /&gt;
==Extensions for Programmers:==&lt;br /&gt;
===[http://wiki.colivre.net/Aurium/RubyInk RubyInk]===&lt;br /&gt;
Inkscape extension with Ruby&lt;br /&gt;
&lt;br /&gt;
===[http://wiki.colivre.net/Aurium/InkBash Ink-Bash]===&lt;br /&gt;
&amp;lt;nowiki&amp;gt;ShellScript&amp;lt;/nowiki&amp;gt; Forever!&lt;br /&gt;
&lt;br /&gt;
===[http://wiki.colivre.net/Aurium/InkMoz InkMoz]===&lt;br /&gt;
The Bridge from Inkscape to Mozilla (Inkscape extension with Javascript and more)&lt;br /&gt;
&lt;br /&gt;
== The Repository Specification ==&lt;br /&gt;
&lt;br /&gt;
A website where programmers can publish their extensions, users can search by that, and an update program can access this updates.&lt;br /&gt;
&lt;br /&gt;
=== The Website ===&lt;br /&gt;
&lt;br /&gt;
Must Have:&lt;br /&gt;
* '''User Registration''': to allow upload, votes and comments&lt;br /&gt;
* '''Extension Validation''': when published, it is public, but the user must be notified that was not validated (the code must be viewed by an validator user). The software updater do not update non-validated versions.&lt;br /&gt;
** '''Validation Feedback''': the validator user must write why the extension was not validated.&lt;br /&gt;
** '''Extension Deletion''': the validator user can delete an extension or version when he found a malicious code. The upload user must be marked as a malicious user and the account must be blocked.&lt;br /&gt;
* '''Extension Search''': with filter, by any available data.&lt;br /&gt;
* '''User Votes and Comments for Extensions''': The user can vote and/or comment an extension version.&lt;br /&gt;
* '''Extension Bug-Tracker''': today, third part extensions are in simple web-pages. The site may have a Bug-Traker to help all little scripts.&lt;br /&gt;
* '''User Extensions Requests''': a lot of users have ideas. Here is a good place for programmers see and make that alive.&lt;br /&gt;
* '''Host a cool page for the extension''': allow introduction text, documenbtation, screenshots, examples, and '''i18n'''!&lt;br /&gt;
* '''Help the l10n of this extensions''': with a web interface, like pootle and provide the l10n file for the updater program.&lt;br /&gt;
* '''Provide Version Control''': A SVN account will be cool, but web uploads (by web-forms) can be transparently SVN commits.&lt;br /&gt;
&lt;br /&gt;
=== The Extension Meta-Data ===&lt;br /&gt;
&lt;br /&gt;
''The data in INX file and more some, like the OS and Inkscape version compatibility...''&lt;br /&gt;
&lt;br /&gt;
The INX file will define the meta-data settable by that. If some extension uses multiples INX files to have more than one option in the menu, all INX files must be read to set the meta-data. The meta-data will be cached in a database to help the search. The DB only need the meta-data of the last validated version and the last non-validated (if that is newer).&lt;br /&gt;
&lt;br /&gt;
=== The Update Program ===&lt;br /&gt;
&lt;br /&gt;
* '''Search for New Extensions''': when the user request&lt;br /&gt;
* '''Update Extensions''': search for updates and install that&lt;br /&gt;
* '''Help the Code Validation''': for advanced users. Show the extension code and the diff if is that an update.&lt;br /&gt;
* '''Help the User Bug-Reporting''': that is not working! The user must say now! ''(When the Update Program be part of the Inkscape, the error window can have a button to submit a bug-report)''&lt;br /&gt;
* '''Must test the extension dependencies''': the user must know what is needed to install before try to use.&lt;br /&gt;
&lt;br /&gt;
== Name Proposal ==&lt;br /&gt;
&lt;br /&gt;
Propose a name for the Inkscape Extension Repository:&lt;br /&gt;
&lt;br /&gt;
* '''The Factory'''&lt;br /&gt;
* '''Extension Factory'''&lt;br /&gt;
* '''INX Factory'''&lt;br /&gt;
&lt;br /&gt;
''Why Factory? Because it is not only a repository. ;-)''&lt;br /&gt;
&lt;br /&gt;
* '''The Furnace'''&lt;br /&gt;
''Because Fire &amp;amp; Coal (Passion &amp;amp; Knowledge) are your tools for creating the extensions''&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
&lt;br /&gt;
== Mockups ==&lt;br /&gt;
&lt;br /&gt;
Here are some suggestions for what an extension repository might look like.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Extension_repository_-_homepage.png|The home page.&lt;br /&gt;
File:Extension_repository_-_extension_page.png|The page for an individual extension.&lt;br /&gt;
File:Extension_repository_-_request_page.png|The page for an individual request.&lt;br /&gt;
File:Extension_repository_-_search_page.png|The search form page.&lt;br /&gt;
File:Extension_repository_-_search_results.png|The search results page.&lt;br /&gt;
File:Extension_repository_-_submit_extension.png|The extension submission page.&lt;br /&gt;
File:Extension_repository_-_submit_request.png|The request submission page.&lt;br /&gt;
File:Extension_repository_-_requests.png|The main requests page.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I have no idea of the detail of this project; I don't currently have the skills necessary to try implementing it. I'm also not sure whether it's a good idea for Inkscape to offer hosted repositories (using [http://www.redmine.org/projects/redmine Redmine] or [http://trac.edgewall.org/ Trac]?) or whether it would be better to just leave it to the developer to use somewhere like [http://github.com/ GitHub] or [http://bitbucket.org/ BitBucket] and then use their APIs to pull some basic data onto the site. [[User:Legio noctis|Legio noctis]] 10:19, 23 May 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Freedo</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Animation-(Timeline)&amp;diff=16414</id>
		<title>Animation-(Timeline)</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Animation-(Timeline)&amp;diff=16414"/>
		<updated>2007-10-14T15:59:51Z</updated>

		<summary type="html">&lt;p&gt;Freedo: Proposal of priciples for an animation ui.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Animation|Back to main page for animation]]&lt;br /&gt;
&lt;br /&gt;
=== User interface for timeline-based animation ===&lt;br /&gt;
&lt;br /&gt;
==== Existing animation programs (Free &amp;amp;amp; non-Free) ====&lt;br /&gt;
&lt;br /&gt;
* [[MacromediaFlash]] is a good non-Free example. &lt;br /&gt;
* [[Ajax Animator]] is a FUNCTIONAL web-based (ajax) free-software clone of the flash interface, and uses a SVG based format for saving and compiling animations (http://osflash.org/ajaxanimator)&lt;br /&gt;
* Ikivo Animator is a good non-Free example producing SVG Tiny animations (http://www.ikivo.com/animator/index.html)&lt;br /&gt;
* Macromedia Director prior to version MX had a different interface (http://www.rice.edu/fondren/erc/howto/director.html) which I prefer(ed) over Flash&lt;br /&gt;
* QFlash is a FUNCTIONAL free-software mock-up of the Flash 4 interface, which can import SVG files but not edit them. (http://qflash.sourceforge.net)&lt;br /&gt;
* F4l is a non-functional free-software mock-up of the Flash 4 interface.(http://f4l.sf.net/)&lt;br /&gt;
* Anime Studio, formerly known as [[Moho]] (http://www.e-frontier.com/article/articleview/1913/1/793?sbss=793) a non-free example. (Written in Java.) Features skeletal animation ([http://www.e-frontier.com/article/articleview/1918/1/800?sbss=80х, unique bone rigging for 2D]) and automatic tweening of vector operations, [http://img.osnews.com/img/2547/moho4-rh.png view screenshot].&lt;br /&gt;
* [[LimSee2]] (http://wam.inrialpes.fr/software/limsee2/) is an excellent almost-free basis. (visible-source limited-use license)&lt;br /&gt;
* Spalah Flash (http://spalah.sourceforge.net/?p=10) (not to be confused with Spalah CMS) &amp;quot;is a GTK2[[/GNOME2]] based application for generating Macromedia SWF and [[W3C]] SVG animations.&amp;quot;  The GUI is today minimalist but the author is trying to integrate it with inkscape. See http://spalah.sourceforge.net/?p=19&lt;br /&gt;
* SMIL 2.1 player: http://www.cwi.nl/projects/Ambulant/distPlayer.html (GPL)&lt;br /&gt;
* Bob Sabiston's proprietary animation software http://www.flatblackfilms.com&lt;br /&gt;
* [[Synfig]] &amp;lt;span style=&amp;quot;font-size:smaller&amp;quot;&amp;gt;([http://www.synfig.com/ link])&amp;lt;/span&amp;gt; is a film-quality 2D vector animation editor and renderer. It features image morphing between drawings and output animation that is resolution independent both visually and temporally. (GPL)&lt;br /&gt;
* Ktoon (http://ktoon.toonka.com/) is a 2D Animation Toolkit designed by animators for animators, focused to the Cartoon Industry. (GPL)&lt;br /&gt;
* Jahshaka (http://www.jahshaka.org/) multiplatform QT animation program powered mostly by OpenGL (GPL)&lt;br /&gt;
* Powerpoint (http://office.microsoft.com) has an easy but basic interface. No flash killer, but some nice ideas.&lt;br /&gt;
* The Tab (http://www.the-tab.com/) Another non-free example that features elegant systems for parent-child animation and a very interesting feature that is designed for pseudo-3D camera moves.&lt;br /&gt;
* Pencil (http://www.les-stooges.org/pascal/pencil/index.php?id=Home) vector and bitmap free animation package using Qt toolkit run on Win32 (XP and works fine on wine), and MacOSX. Simple but already powerful basic animation. It uses blender like timeline with multiple layers and Author plan to export SVG.&lt;br /&gt;
* SVGDeveloper (http://www.perfectsvg.com/) is a non-free SVG authoring tool with animation support.&lt;br /&gt;
* Blender3D (http://blender.org/) is a 3d (eq. vector) animation program featuring  [http://wiki.blender.org/index.php/Manual/Animation_Basics key frame, motion curve, path animation] using [http://wiki.blender.org/index.php/Manual/Ipo_Curves_and_Keyframes interpolation (IPO) curve editing] combining with [http://wiki.blender.org/index.php/Manual/Shape_Keys shape keys] and  [http://wiki.blender.org/index.php/Manual/Animation/Lattice_Animation deforming by a lattice] (GPL)&lt;br /&gt;
* [http://gimp.org Gimp] the bitmpa editor and it's included animation script for gif is really minimalistic and frame based&lt;br /&gt;
* [http://gimp.org Gimp-GAP] (wich stand for Gimp Animation Plugin) is a gimp plugin has some good interfaces for managing movments of objects (menu video=&amp;gt;movepath), layer management and apply effects along animation. A powerfull onionskin management, and notions of clip/storyboard, but could be slow in complexe case and slow computers.&lt;br /&gt;
&lt;br /&gt;
==== Fantavision example ====&lt;br /&gt;
Back in the '80's there was a program on Apple IIE (Amiga and MS-DOS too) called &amp;quot;Fantavision&amp;quot;. It allowed one to create vector artwork (although I didn't understand at the time that that was what it was called) and animations. It allowed one to create frames of animation where you manually repositioned, recolored, scaled, rotated etc. the objects from one frame to the next. However, it then automatically interpolated frames between the 2 frames (the number of interpolated frames was configurable) such that it create a smooth transition of the object moving from one frame to the other. The effect was very similiar to the &amp;quot;Morphing&amp;quot; effect for raster graphics (popularized in a Michael Jackson video, I believe). That is, the system calculated the trajectory of &amp;quot;Key Points&amp;quot; of the objects from one frame to the next.  This process is often called &amp;quot;Tweening&amp;quot; (a term used by Macromedia Flash).  [[Sketch|Skencil]] (formerly known as [[Sketch]]) supports this functionality and describes it as &amp;quot;Blending&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
I guess what I'm saying is that I think a nice interface to create animations would be similiar. So to animate you would do the following:&lt;br /&gt;
&lt;br /&gt;
* Draw the initial SVG Image &lt;br /&gt;
&lt;br /&gt;
* Increment Frame (from say 1 to 20)&lt;br /&gt;
&lt;br /&gt;
* Reposition the elements in frame 20 (including scaling, color changes, adding removing objects, etc, etc, etc)&lt;br /&gt;
&lt;br /&gt;
* System would then calculate a trajectory for each key point from frame 1 to frame 20. Trajectories would be calculated for things like:&lt;br /&gt;
** Each &amp;quot;node&amp;quot; of an object&lt;br /&gt;
** Color &lt;br /&gt;
** Transformation Matrix&lt;br /&gt;
** etc&lt;br /&gt;
&lt;br /&gt;
* You could display/manipulate the trajectories (using the trajectory editor shown above by the original creator of this topic)&lt;br /&gt;
&lt;br /&gt;
* The system would then store the animations using SVG trajectories and the &amp;quot;Key Points&amp;quot; would be the frames you manually created&lt;br /&gt;
&lt;br /&gt;
:So, to create say a 100 frame animation, one might only need to manually create/modify 10 frames and the system would interpolate the additional frames as necessary.&lt;br /&gt;
&lt;br /&gt;
* Also, once the system interpolated frames it would allow you to manually modify the interpolated frames creating further &amp;quot;Key Points&amp;quot; and allow further refinement and interpolation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTE: 3D apps such as blender also use a technique like this, which I think is most widely known as &amp;quot;keyframe animation&amp;quot; or simply &amp;quot;keyframing&amp;quot;.  However, many such systems tie the keys too closely to actual animation frames, and this creates problems when the frames-per-second rate changes.  Particularly in the case of vector apps which are not so low-level as bitmaps and animation frames, I would suggest that frames should be as abstract as possible.&lt;br /&gt;
&lt;br /&gt;
Having key positions in simple percentages of the total animation time might be a better solution.  This would also need to be a global/local system, of course: animated objects would have their own animation time specified when inserted into a larger document.  A character's walkcycle would end at 100%, but in the larger animation, it would perhaps only be 5% of the total time, yet repeating as the object moves across the screen.&lt;br /&gt;
&lt;br /&gt;
One issue with this abstraction of frames might be that important animation effects do not occur exactly within frames: small things could be mistimed, or simply missed altogether.  If you set the frame rate too low, this would be an obvious side effect, so it's not necessarily a problem&lt;br /&gt;
that Inkscape should try to fix.  On the other hand, a few things could be done to ease this.  For instance, &amp;quot;snapping&amp;quot; animation events to frames when exporting (thereby slightly altering the timing), or perhaps just warning that certain animation events are not visible at such a low frame rate.&lt;br /&gt;
&lt;br /&gt;
Of course, on the web, with SVG and DHTML, where most Inkscape animations will hopefully be used one day, frames are not an issue at all, and we just worry about keys in time :)&lt;br /&gt;
&lt;br /&gt;
ANOTHER NOTE: Interpolation does not necessarily occur along straight lines and linearly in time. Paths are already part of Inkscape, so points could move along paths; also he time-length graph can be something like a path, instead of a straight line.&lt;br /&gt;
&lt;br /&gt;
==== Jahshaka example ====&lt;br /&gt;
&lt;br /&gt;
I have used jahshaka for a small animation. This was my first real experience with animation. Thought rough, jahshaka is all about key frames and setting properties for those key frames.&lt;br /&gt;
&lt;br /&gt;
Things I liked&lt;br /&gt;
&lt;br /&gt;
* Key frames are on a per object basis&lt;br /&gt;
* When an object is selected you can quickly move from one key frame to another&lt;br /&gt;
* properties values for rotation can span beyond 0 and 360, permetting to set three or more complete rotation with too key frame. I think this kind of feature could be used for all bounded values (like color, transparency and so on). Is this compatible with SVG or should it be an artifact ?&lt;br /&gt;
* representation of properties values on a time line graph. This functionnality was still not very usable, but being to interact through that kind of object could be very useful (see below)&lt;br /&gt;
&lt;br /&gt;
Things that lacks (and Inkscape shall have)&lt;br /&gt;
&lt;br /&gt;
* possibility to copy animation properties from one object to another (say copy color animation, or whole animation)&lt;br /&gt;
* possibility to modify a property value for all key frames at once (eg. translation of object for all key frames or a selcted group). I think this could happen through the value = f(time) graph metioned above. You could select points (representing keyframes) and move them up (more), down (less), right (sooner). This graph could be organised by properties set (color, position). I think this kind of graph would be very close to SVG animations tag.&lt;br /&gt;
* macro that helps sets common effects (like blinking for example, or crossing the screen....)&lt;br /&gt;
&lt;br /&gt;
==== Bob Sabiston Example ====&lt;br /&gt;
Bob Sabiston's animation software is an amazing vector-based package that stores line width within the points that make up a line -- derived from a tablet pen. usually in a simple stroke there could be a hundred data points storing width information. Then in the next keyframe, a line from a previous key is selected and re-drawn restricted to the same number of points. The software allow sthe points to be &amp;quot;repositioned&amp;quot; as you watch their previous locations be re-positioned. When you run out, the line ends automatically. This information is interpolated in tweening frames to change shape, width, position, but retains the same number of data-points. See the film &amp;quot;Waking Life&amp;quot; for the making-of video for a demonstration. Also visit his website for examples of it's capabilities converted to flash. http://www.flatblackfilms.com&lt;br /&gt;
&lt;br /&gt;
==== Other thoughts ====&lt;br /&gt;
&lt;br /&gt;
Suggestion from someone else: working like [[CinePaint]] (compared with Gimp), with each frame independently from each svg document (working like this or providing this feature) - providing vectorial edition quality we can't get on apps like Macromedia Flash or any other (maybe [[ToonBoom]] or Moho) - allowing us to make our work fast publish without further lack of quality.&lt;br /&gt;
(One more suggestion about it: being able to convert .swf to .svg sequence (or animated .sgv) and vice versa.)&lt;br /&gt;
&lt;br /&gt;
It is suggested that there be basically two modes: Local (Object) mode and Global mode. Below is a picture showing a very rough design of the local mode:&lt;br /&gt;
&lt;br /&gt;
http://www.inkscape.org/wiki_uploads/anim_gui1.png&lt;br /&gt;
&lt;br /&gt;
In local modes, all properties of the object editing will be shown on a timeline, and one can create and edit frame within the timeline. Then one may assign different value of that properties on different timeline, or make it change linearly, or nonlinearly :)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Animation support in Inkscape offers great new opportunities. Here are some points that I think are important to keep in mind when adding animation to the GUI:&lt;br /&gt;
&lt;br /&gt;
* ''Originality''&amp;lt;br&amp;gt;Don't do as other do - except it's the best way.&lt;br /&gt;
* ''Simplicity''&amp;lt;br&amp;gt;Animation should not stand in the way of the user. Only show as much as necessary to perform a certain task, and do things in the most natural way.&lt;br /&gt;
* ''SVG-Orientation''&amp;lt;br&amp;gt;SVG animation is different in some ways. The UI should reflect this, and not reassemble concepts of tools that just work differently. E.g.,&lt;br /&gt;
** SMIL animation has no concept of frames. So we don't need a frame-based timeline, but a time-based one.&lt;br /&gt;
** SMIL animation in general is to animation what vector graphics is to graphics: It's declarative and object oriented. So one doesn't animate a scene, one animates objects on a scene, etc.&lt;br /&gt;
* ''Coherence''&amp;lt;br&amp;gt;The animation UI should reassemble concepts that Inkscape users are already familiar with:&lt;br /&gt;
** Animation timelines can in some contexts be treated as paths that one can add points to (keyTimes). Or one can control animation timing with splines (keySplines).&lt;br /&gt;
&lt;br /&gt;
I composed a mockup that reflects the above mentioned characteristics to some extend:&lt;br /&gt;
http://www.uni-bremen.de/~felwert/inkscape/Animation01.html&lt;br /&gt;
&lt;br /&gt;
==== Powerpoint Example ====&lt;br /&gt;
You select an object and add types of animation. These are listed in the custom animation pane. They can be set to occur all at once, one at a time, onclick, with previous or after previous. A number appears next to each object in the editing window when the object has animation applied to it, representing the sequence of the animations. When an object has an Entrance type animation added to it as the first animation, it will not appear on screen until the timeline reaches this point. animations can be linked together to create quite complicated sequences.&lt;br /&gt;
&lt;br /&gt;
==== Onion Skinning ====&lt;br /&gt;
Onion skinning is a standard animator tool, previous or next frames (sometime both) are displayed under the current frame with differrent color, or less contrast, allowing to understand wich drawing the animator is actually working on, and wich frame is 1 step or 2 step before or after the actual frame.&lt;br /&gt;
&lt;br /&gt;
This can easily be implemented using transparency parameter of layer, and automatize selection of layers to be displayed, parameters following a specialized gui entries.&lt;br /&gt;
&lt;br /&gt;
Onionskin in gimp-GAP is a good example of what should be a minimal requirement. that is managin backword, forward and both direction onion skin, with variable visiblity increase decrease. Color changes on onionskinning could be another useful option to increase visiblity of different frames, as generally the onionskinning is done at the sketching animation step (meaning mostly grey  or black &amp;amp; white drawing)&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Onion-skinning Onion skinning on wikipedia].&lt;br /&gt;
&lt;br /&gt;
==== Interactive ====&lt;br /&gt;
I have started using svg to develop interactive displays.  Having used several other svg tools currently on the market, I am interested in a more generic implementation that doesn't have animation effects get in the way of interactive controls.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Playback of Construction Steps ====&lt;br /&gt;
We, at [http://www.classapart.org Class Apart] ( www.classapart.org ), plan to use Inkscape in a manner similar to the classroom whitebord to create taught lectures and record the screen in an mpeg movie. The problem is that raster based formats would take about 50 MB for an hour of content, and does not go very well with our unstated goal of getting a whole course on a cd or all courses of a semester on one dvd. It would be great if we could store the construction steps of the svg keyed against time while recording. Then while playback we can patch the svg dom with the steps as needed, using something similar to smil script. How does one go about implementing this? We could find some members willing to implement.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Discussion]]&lt;/div&gt;</summary>
		<author><name>Freedo</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Animation-(Timeline)&amp;diff=14171</id>
		<title>Animation-(Timeline)</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Animation-(Timeline)&amp;diff=14171"/>
		<updated>2007-04-13T18:22:15Z</updated>

		<summary type="html">&lt;p&gt;Freedo: /* Other thoughts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Animation|Back to main page for animation]]&lt;br /&gt;
&lt;br /&gt;
=== User interface for timeline-based animation ===&lt;br /&gt;
&lt;br /&gt;
==== Existing animation programs (Free &amp;amp;amp; non-Free) ====&lt;br /&gt;
&lt;br /&gt;
* [[MacromediaFlash]] is a good non-Free example. &lt;br /&gt;
* Ikivo Animator is a good non-Free example producing SVG Tiny animations (http://www.ikivo.com/animator/index.html)&lt;br /&gt;
* Macromedia Director prior to version MX had a different interface (http://www.rice.edu/fondren/erc/howto/director.html) which I prefer(ed) over Flash&lt;br /&gt;
* QFlash is a FUNCTIONAL free-software mock-up of the Flash 4 interface, which can import SVG files but not edit them. (http://qflash.sourceforge.net)&lt;br /&gt;
* F4l is a non-functional free-software mock-up of the Flash 4 interface.(http://f4l.sf.net/)&lt;br /&gt;
* Anime Studio, formerly known as [[Moho]] (http://www.e-frontier.com/article/articleview/1913/1/793?sbss=793) a non-free example. (Written in Java.) Features skeletal animation and automatic tweening of vector operations, [http://img.osnews.com/img/2547/moho4-rh.png view screenshot].&lt;br /&gt;
* [[LimSee2]] (http://wam.inrialpes.fr/software/limsee2/) is an excellent almost-free basis. (visible-source limited-use license)&lt;br /&gt;
* Spalah Flash (http://spalah.sourceforge.net/?p=10) (not to be confused with Spalah CMS) &amp;quot;is a GTK2[[/GNOME2]] based application for generating Macromedia SWF and [[W3C]] SVG animations.&amp;quot;  The GUI is today minimalist but the author is trying to integrate it with inkscape. See http://spalah.sourceforge.net/?p=19&lt;br /&gt;
* SMIL 2.1 player: http://www.cwi.nl/projects/Ambulant/distPlayer.html (GPL)&lt;br /&gt;
* Bob Sabiston's proprietary animation software http://www.flatblackfilms.com&lt;br /&gt;
* [[Synfig]] &amp;lt;span style=&amp;quot;font-size:smaller&amp;quot;&amp;gt;([http://www.synfig.com/ link])&amp;lt;/span&amp;gt; is a film-quality 2D vector animation editor and renderer. It features image morphing between drawings and output animation that is resolution independent both visually and temporally. (GPL)&lt;br /&gt;
* Ktoon (http://ktoon.toonka.com/) is a 2D Animation Toolkit designed by animators for animators, focused to the Cartoon Industry. (GPL)&lt;br /&gt;
* Jahshaka (http://www.jahshaka.org/) multiplatform QT animation program powered mostly by OpenGL (GPL)&lt;br /&gt;
* Powerpoint (http://office.microsoft.com) has an easy but basic interface. No flash killer, but some nice ideas.&lt;br /&gt;
* The Tab (http://www.the-tab.com/) Another non-free example that features elegant systems for parent-child animation and a very interesting feature that is designed for pseudo-3D camera moves.&lt;br /&gt;
* Pencil (http://www.les-stooges.org/pascal/pencil/index.php?id=Home) vector and bitmap free animation package using Qt toolkit run on Win32 (XP and works fine on wine), and MacOSX. Simple but already powerful basic animation. It uses blender like timeline with multiple layers and Author plan to export SVG.&lt;br /&gt;
* SVGDeveloper (http://www.perfectsvg.com/) is a non-free SVG authoring tool with animation support.&lt;br /&gt;
&lt;br /&gt;
==== Fantavision example ====&lt;br /&gt;
Back in the '80's there was a program on Apple IIE (Amiga and MS-DOS too) called &amp;quot;Fantavision&amp;quot;. It allowed one to create vector artwork (although I didn't understand at the time that that was what it was called) and animations. It allowed one to create frames of animation where you manually repositioned, recolored, scaled, rotated etc. the objects from one frame to the next. However, it then automatically interpolated frames between the 2 frames (the number of interpolated frames was configurable) such that it create a smooth transition of the object moving from one frame to the other. The effect was very similiar to the &amp;quot;Morphing&amp;quot; effect for raster graphics (popularized in a Michael Jackson video, I believe). That is, the system calculated the trajectory of &amp;quot;Key Points&amp;quot; of the objects from one frame to the next.  This process is often called &amp;quot;Tweening&amp;quot; (a term used by Macromedia Flash).  [[Sketch|Skencil]] (formerly known as [[Sketch]]) supports this functionality and describes it as &amp;quot;Blending&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
I guess what I'm saying is that I think a nice interface to create animations would be similiar. So to animate you would do the following:&lt;br /&gt;
&lt;br /&gt;
* Draw the initial SVG Image &lt;br /&gt;
&lt;br /&gt;
* Increment Frame (from say 1 to 20)&lt;br /&gt;
&lt;br /&gt;
* Reposition the elements in frame 20 (including scaling, color changes, adding removing objects, etc, etc, etc)&lt;br /&gt;
&lt;br /&gt;
* System would then calculate a trajectory for each key point from frame 1 to frame 20. Trajectories would be calculated for things like:&lt;br /&gt;
** Each &amp;quot;node&amp;quot; of an object&lt;br /&gt;
** Color &lt;br /&gt;
** Transformation Matrix&lt;br /&gt;
** etc&lt;br /&gt;
&lt;br /&gt;
* You could display/manipulate the trajectories (using the trajectory editor shown above by the original creator of this topic)&lt;br /&gt;
&lt;br /&gt;
* The system would then store the animations using SVG trajectories and the &amp;quot;Key Points&amp;quot; would be the frames you manually created&lt;br /&gt;
&lt;br /&gt;
:So, to create say a 100 frame animation, one might only need to manually create/modify 10 frames and the system would interpolate the additional frames as necessary.&lt;br /&gt;
&lt;br /&gt;
* Also, once the system interpolated frames it would allow you to manually modify the interpolated frames creating further &amp;quot;Key Points&amp;quot; and allow further refinement and interpolation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTE: 3D apps such as blender also use a technique like this, which I think is most widely known as &amp;quot;keyframe animation&amp;quot; or simply &amp;quot;keyframing&amp;quot;.  However, many such systems tie the keys too closely to actual animation frames, and this creates problems when the frames-per-second rate changes.  Particularly in the case of vector apps which are not so low-level as bitmaps and animation frames, I would suggest that frames should be as abstract as possible.&lt;br /&gt;
&lt;br /&gt;
Having key positions in simple percentages of the total animation time might be a better solution.  This would also need to be a global/local system, of course: animated objects would have their own animation time specified when inserted into a larger document.  A character's walkcycle would end at 100%, but in the larger animation, it would perhaps only be 5% of the total time, yet repeating as the object moves across the screen.&lt;br /&gt;
&lt;br /&gt;
One issue with this abstraction of frames might be that important animation effects do not occur exactly within frames: small things could be mistimed, or simply missed altogether.  If you set the frame rate too low, this would be an obvious side effect, so it's not necessarily a problem&lt;br /&gt;
that Inkscape should try to fix.  On the other hand, a few things could be done to ease this.  For instance, &amp;quot;snapping&amp;quot; animation events to frames when exporting (thereby slightly altering the timing), or perhaps just warning that certain animation events are not visible at such a low frame rate.&lt;br /&gt;
&lt;br /&gt;
Of course, on the web, with SVG and DHTML, where most Inkscape animations will hopefully be used one day, frames are not an issue at all, and we just worry about keys in time :)&lt;br /&gt;
&lt;br /&gt;
ANOTHER NOTE: Interpolation does not necessarily occur along straight lines and linearly in time. Paths are already part of Inkscape, so points could move along paths; also he time-length graph can be something like a path, instead of a straight line.&lt;br /&gt;
&lt;br /&gt;
==== Jahshaka example ====&lt;br /&gt;
&lt;br /&gt;
I have used jahshaka for a small animation. This was my first real experience with animation. Thought rough, jahshaka is all about key frames and setting properties for those key frames.&lt;br /&gt;
&lt;br /&gt;
Things I liked&lt;br /&gt;
&lt;br /&gt;
* Key frames are on a per object basis&lt;br /&gt;
* When an object is selected you can quickly move from one key frame to another&lt;br /&gt;
* properties values for rotation can span beyond 0 and 360, permetting to set three or more complete rotation with too key frame. I think this kind of feature could be used for all bounded values (like color, transparency and so on). Is this compatible with SVG or should it be an artifact ?&lt;br /&gt;
* representation of properties values on a time line graph. This functionnality was still not very usable, but being to interact through that kind of object could be very useful (see below)&lt;br /&gt;
&lt;br /&gt;
Things that lacks (and Inkscape shall have)&lt;br /&gt;
&lt;br /&gt;
* possibility to copy animation properties from one object to another (say copy color animation, or whole animation)&lt;br /&gt;
* possibility to modify a property value for all key frames at once (eg. translation of object for all key frames or a selcted group). I think this could happen through the value = f(time) graph metioned above. You could select points (representing keyframes) and move them up (more), down (less), right (sooner). This graph could be organised by properties set (color, position). I think this kind of graph would be very close to SVG animations tag.&lt;br /&gt;
* macro that helps sets common effects (like blinking for example, or crossing the screen....)&lt;br /&gt;
&lt;br /&gt;
==== Bob Sabiston Example ====&lt;br /&gt;
Bob Sabiston's animation software is an amazing vector-based package that stores line width within the points that make up a line -- derived from a tablet pen. usually in a simple stroke there could be a hundred data points storing width information. Then in the next keyframe, a line from a previous key is selected and re-drawn restricted to the same number of points. The software allow sthe points to be &amp;quot;repositioned&amp;quot; as you watch their previous locations be re-positioned. When you run out, the line ends automatically. This information is interpolated in tweening frames to change shape, width, position, but retains the same number of data-points. See the film &amp;quot;Waking Life&amp;quot; for the making-of video for a demonstration. Also visit his website for examples of it's capabilities converted to flash. http://www.flatblackfilms.com&lt;br /&gt;
&lt;br /&gt;
==== Other thoughts ====&lt;br /&gt;
&lt;br /&gt;
Suggestion from someone else: working like [[CinePaint]] (compared with Gimp), with each frame independently from each svg document (working like this or providing this feature) - providing vectorial edition quality we can't get on apps like Macromedia Flash or any other (maybe [[ToonBoom]] or Moho) - allowing us to make our work fast publish without further lack of quality.&lt;br /&gt;
(One more suggestion about it: being able to convert .swf to .svg sequence (or animated .sgv) and vice versa.)&lt;br /&gt;
&lt;br /&gt;
It is suggested that there be basically two modes: Local (Object) mode and Global mode. Below is a picture showing a very rough design of the local mode:&lt;br /&gt;
&lt;br /&gt;
http://www.inkscape.org/wiki_uploads/anim_gui1.png&lt;br /&gt;
&lt;br /&gt;
In local modes, all properties of the object editing will be shown on a timeline, and one can create and edit frame within the timeline. Then one may assign different value of that properties on different timeline, or make it change linearly, or nonlinearly :)&lt;br /&gt;
&lt;br /&gt;
For an example of a similar model, have a look at:&lt;br /&gt;
&lt;br /&gt;
http://www.uni-bremen.de/~felwert/inkscape/Animation01.html&lt;br /&gt;
&lt;br /&gt;
==== Powerpoint Example ====&lt;br /&gt;
You select an object and add types of animation. These are listed in the custom animation pane. They can be set to occur all at once, one at a time, onclick, with previous or after previous. A number appears next to each object in the editing window when the object has animation applied to it, representing the sequence of the animations. When an object has an Entrance type animation added to it as the first animation, it will not appear on screen until the timeline reaches this point. animations can be linked together to create quite complicated sequences.&lt;br /&gt;
&lt;br /&gt;
==== Onion Skinning ====&lt;br /&gt;
Onion skinning is a standard animator tool, previous or next frames (sometime both) are displayed under the current frame with differrent color, or less contrast, allowing to understand wich drawing the animator is actually working on, and wich frame is 1 step or 2 step before or after the actual frame.&lt;br /&gt;
&lt;br /&gt;
This can easily be implemented using transparency parameter of layer, and automatize selection of layers to be displayed, parameters following a specialized gui entries.&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Onion-skinning Onion skinning on wikipedia].&lt;br /&gt;
&lt;br /&gt;
==== Interactive ====&lt;br /&gt;
I have started using svg to develop interactive displays.  Having used several other svg tools currently on the market, I am interested in a more generic implementation that doesn't have animation effects get in the way of interactive controls.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Playback of Construction Steps ====&lt;br /&gt;
We, at [Class Apart, http://www.classapart.org/], plan to use Inkscape in a manner similar to the classroom whitebord to create taught lectures and record the screen in an mpeg movie. The problem is that raster based formats would take about 50 MB for an hour of content, and does not go very well with our unstated goal of getting a whole course on a cd or all courses of a semester on one dvd. It would be great if we could store the construction steps of the svg keyed against time while recording. Then while playback we can patch the svg dom with the steps as needed, using something similar to smil script. How does one go about implementing this? We could find some members willing to implement.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Discussion]]&lt;/div&gt;</summary>
		<author><name>Freedo</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Animation-(Timeline)&amp;diff=14170</id>
		<title>Animation-(Timeline)</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Animation-(Timeline)&amp;diff=14170"/>
		<updated>2007-04-13T17:37:39Z</updated>

		<summary type="html">&lt;p&gt;Freedo: /* Existing animation programs (Free &amp;amp;amp; non-Free) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Animation|Back to main page for animation]]&lt;br /&gt;
&lt;br /&gt;
=== User interface for timeline-based animation ===&lt;br /&gt;
&lt;br /&gt;
==== Existing animation programs (Free &amp;amp;amp; non-Free) ====&lt;br /&gt;
&lt;br /&gt;
* [[MacromediaFlash]] is a good non-Free example. &lt;br /&gt;
* Ikivo Animator is a good non-Free example producing SVG Tiny animations (http://www.ikivo.com/animator/index.html)&lt;br /&gt;
* Macromedia Director prior to version MX had a different interface (http://www.rice.edu/fondren/erc/howto/director.html) which I prefer(ed) over Flash&lt;br /&gt;
* QFlash is a FUNCTIONAL free-software mock-up of the Flash 4 interface, which can import SVG files but not edit them. (http://qflash.sourceforge.net)&lt;br /&gt;
* F4l is a non-functional free-software mock-up of the Flash 4 interface.(http://f4l.sf.net/)&lt;br /&gt;
* Anime Studio, formerly known as [[Moho]] (http://www.e-frontier.com/article/articleview/1913/1/793?sbss=793) a non-free example. (Written in Java.) Features skeletal animation and automatic tweening of vector operations, [http://img.osnews.com/img/2547/moho4-rh.png view screenshot].&lt;br /&gt;
* [[LimSee2]] (http://wam.inrialpes.fr/software/limsee2/) is an excellent almost-free basis. (visible-source limited-use license)&lt;br /&gt;
* Spalah Flash (http://spalah.sourceforge.net/?p=10) (not to be confused with Spalah CMS) &amp;quot;is a GTK2[[/GNOME2]] based application for generating Macromedia SWF and [[W3C]] SVG animations.&amp;quot;  The GUI is today minimalist but the author is trying to integrate it with inkscape. See http://spalah.sourceforge.net/?p=19&lt;br /&gt;
* SMIL 2.1 player: http://www.cwi.nl/projects/Ambulant/distPlayer.html (GPL)&lt;br /&gt;
* Bob Sabiston's proprietary animation software http://www.flatblackfilms.com&lt;br /&gt;
* [[Synfig]] &amp;lt;span style=&amp;quot;font-size:smaller&amp;quot;&amp;gt;([http://www.synfig.com/ link])&amp;lt;/span&amp;gt; is a film-quality 2D vector animation editor and renderer. It features image morphing between drawings and output animation that is resolution independent both visually and temporally. (GPL)&lt;br /&gt;
* Ktoon (http://ktoon.toonka.com/) is a 2D Animation Toolkit designed by animators for animators, focused to the Cartoon Industry. (GPL)&lt;br /&gt;
* Jahshaka (http://www.jahshaka.org/) multiplatform QT animation program powered mostly by OpenGL (GPL)&lt;br /&gt;
* Powerpoint (http://office.microsoft.com) has an easy but basic interface. No flash killer, but some nice ideas.&lt;br /&gt;
* The Tab (http://www.the-tab.com/) Another non-free example that features elegant systems for parent-child animation and a very interesting feature that is designed for pseudo-3D camera moves.&lt;br /&gt;
* Pencil (http://www.les-stooges.org/pascal/pencil/index.php?id=Home) vector and bitmap free animation package using Qt toolkit run on Win32 (XP and works fine on wine), and MacOSX. Simple but already powerful basic animation. It uses blender like timeline with multiple layers and Author plan to export SVG.&lt;br /&gt;
* SVGDeveloper (http://www.perfectsvg.com/) is a non-free SVG authoring tool with animation support.&lt;br /&gt;
&lt;br /&gt;
==== Fantavision example ====&lt;br /&gt;
Back in the '80's there was a program on Apple IIE (Amiga and MS-DOS too) called &amp;quot;Fantavision&amp;quot;. It allowed one to create vector artwork (although I didn't understand at the time that that was what it was called) and animations. It allowed one to create frames of animation where you manually repositioned, recolored, scaled, rotated etc. the objects from one frame to the next. However, it then automatically interpolated frames between the 2 frames (the number of interpolated frames was configurable) such that it create a smooth transition of the object moving from one frame to the other. The effect was very similiar to the &amp;quot;Morphing&amp;quot; effect for raster graphics (popularized in a Michael Jackson video, I believe). That is, the system calculated the trajectory of &amp;quot;Key Points&amp;quot; of the objects from one frame to the next.  This process is often called &amp;quot;Tweening&amp;quot; (a term used by Macromedia Flash).  [[Sketch|Skencil]] (formerly known as [[Sketch]]) supports this functionality and describes it as &amp;quot;Blending&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
I guess what I'm saying is that I think a nice interface to create animations would be similiar. So to animate you would do the following:&lt;br /&gt;
&lt;br /&gt;
* Draw the initial SVG Image &lt;br /&gt;
&lt;br /&gt;
* Increment Frame (from say 1 to 20)&lt;br /&gt;
&lt;br /&gt;
* Reposition the elements in frame 20 (including scaling, color changes, adding removing objects, etc, etc, etc)&lt;br /&gt;
&lt;br /&gt;
* System would then calculate a trajectory for each key point from frame 1 to frame 20. Trajectories would be calculated for things like:&lt;br /&gt;
** Each &amp;quot;node&amp;quot; of an object&lt;br /&gt;
** Color &lt;br /&gt;
** Transformation Matrix&lt;br /&gt;
** etc&lt;br /&gt;
&lt;br /&gt;
* You could display/manipulate the trajectories (using the trajectory editor shown above by the original creator of this topic)&lt;br /&gt;
&lt;br /&gt;
* The system would then store the animations using SVG trajectories and the &amp;quot;Key Points&amp;quot; would be the frames you manually created&lt;br /&gt;
&lt;br /&gt;
:So, to create say a 100 frame animation, one might only need to manually create/modify 10 frames and the system would interpolate the additional frames as necessary.&lt;br /&gt;
&lt;br /&gt;
* Also, once the system interpolated frames it would allow you to manually modify the interpolated frames creating further &amp;quot;Key Points&amp;quot; and allow further refinement and interpolation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTE: 3D apps such as blender also use a technique like this, which I think is most widely known as &amp;quot;keyframe animation&amp;quot; or simply &amp;quot;keyframing&amp;quot;.  However, many such systems tie the keys too closely to actual animation frames, and this creates problems when the frames-per-second rate changes.  Particularly in the case of vector apps which are not so low-level as bitmaps and animation frames, I would suggest that frames should be as abstract as possible.&lt;br /&gt;
&lt;br /&gt;
Having key positions in simple percentages of the total animation time might be a better solution.  This would also need to be a global/local system, of course: animated objects would have their own animation time specified when inserted into a larger document.  A character's walkcycle would end at 100%, but in the larger animation, it would perhaps only be 5% of the total time, yet repeating as the object moves across the screen.&lt;br /&gt;
&lt;br /&gt;
One issue with this abstraction of frames might be that important animation effects do not occur exactly within frames: small things could be mistimed, or simply missed altogether.  If you set the frame rate too low, this would be an obvious side effect, so it's not necessarily a problem&lt;br /&gt;
that Inkscape should try to fix.  On the other hand, a few things could be done to ease this.  For instance, &amp;quot;snapping&amp;quot; animation events to frames when exporting (thereby slightly altering the timing), or perhaps just warning that certain animation events are not visible at such a low frame rate.&lt;br /&gt;
&lt;br /&gt;
Of course, on the web, with SVG and DHTML, where most Inkscape animations will hopefully be used one day, frames are not an issue at all, and we just worry about keys in time :)&lt;br /&gt;
&lt;br /&gt;
ANOTHER NOTE: Interpolation does not necessarily occur along straight lines and linearly in time. Paths are already part of Inkscape, so points could move along paths; also he time-length graph can be something like a path, instead of a straight line.&lt;br /&gt;
&lt;br /&gt;
==== Jahshaka example ====&lt;br /&gt;
&lt;br /&gt;
I have used jahshaka for a small animation. This was my first real experience with animation. Thought rough, jahshaka is all about key frames and setting properties for those key frames.&lt;br /&gt;
&lt;br /&gt;
Things I liked&lt;br /&gt;
&lt;br /&gt;
* Key frames are on a per object basis&lt;br /&gt;
* When an object is selected you can quickly move from one key frame to another&lt;br /&gt;
* properties values for rotation can span beyond 0 and 360, permetting to set three or more complete rotation with too key frame. I think this kind of feature could be used for all bounded values (like color, transparency and so on). Is this compatible with SVG or should it be an artifact ?&lt;br /&gt;
* representation of properties values on a time line graph. This functionnality was still not very usable, but being to interact through that kind of object could be very useful (see below)&lt;br /&gt;
&lt;br /&gt;
Things that lacks (and Inkscape shall have)&lt;br /&gt;
&lt;br /&gt;
* possibility to copy animation properties from one object to another (say copy color animation, or whole animation)&lt;br /&gt;
* possibility to modify a property value for all key frames at once (eg. translation of object for all key frames or a selcted group). I think this could happen through the value = f(time) graph metioned above. You could select points (representing keyframes) and move them up (more), down (less), right (sooner). This graph could be organised by properties set (color, position). I think this kind of graph would be very close to SVG animations tag.&lt;br /&gt;
* macro that helps sets common effects (like blinking for example, or crossing the screen....)&lt;br /&gt;
&lt;br /&gt;
==== Bob Sabiston Example ====&lt;br /&gt;
Bob Sabiston's animation software is an amazing vector-based package that stores line width within the points that make up a line -- derived from a tablet pen. usually in a simple stroke there could be a hundred data points storing width information. Then in the next keyframe, a line from a previous key is selected and re-drawn restricted to the same number of points. The software allow sthe points to be &amp;quot;repositioned&amp;quot; as you watch their previous locations be re-positioned. When you run out, the line ends automatically. This information is interpolated in tweening frames to change shape, width, position, but retains the same number of data-points. See the film &amp;quot;Waking Life&amp;quot; for the making-of video for a demonstration. Also visit his website for examples of it's capabilities converted to flash. http://www.flatblackfilms.com&lt;br /&gt;
&lt;br /&gt;
==== Other thoughts ====&lt;br /&gt;
&lt;br /&gt;
Suggestion from someone else: working like [[CinePaint]] (compared with Gimp), with each frame independently from each svg document (working like this or providing this feature) - providing vectorial edition quality we can't get on apps like Macromedia Flash or any other (maybe [[ToonBoom]] or Moho) - allowing us to make our work fast publish without further lack of quality.&lt;br /&gt;
(One more suggestion about it: being able to convert .swf to .svg sequence (or animated .sgv) and vice versa.)&lt;br /&gt;
&lt;br /&gt;
It is suggested that there be basically two modes: Local (Object) mode and Global mode. Below is a picture showing a very rough design of the local mode:&lt;br /&gt;
&lt;br /&gt;
http://www.inkscape.org/wiki_uploads/anim_gui1.png&lt;br /&gt;
&lt;br /&gt;
In local modes, all properties of the object editing will be shown on a timeline, and one can create and edit frame within the timeline. Then one may assign different value of that properties on different timeline, or make it change linearly, or nonlinearly :)&lt;br /&gt;
&lt;br /&gt;
==== Powerpoint Example ====&lt;br /&gt;
You select an object and add types of animation. These are listed in the custom animation pane. They can be set to occur all at once, one at a time, onclick, with previous or after previous. A number appears next to each object in the editing window when the object has animation applied to it, representing the sequence of the animations. When an object has an Entrance type animation added to it as the first animation, it will not appear on screen until the timeline reaches this point. animations can be linked together to create quite complicated sequences.&lt;br /&gt;
&lt;br /&gt;
==== Onion Skinning ====&lt;br /&gt;
Onion skinning is a standard animator tool, previous or next frames (sometime both) are displayed under the current frame with differrent color, or less contrast, allowing to understand wich drawing the animator is actually working on, and wich frame is 1 step or 2 step before or after the actual frame.&lt;br /&gt;
&lt;br /&gt;
This can easily be implemented using transparency parameter of layer, and automatize selection of layers to be displayed, parameters following a specialized gui entries.&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Onion-skinning Onion skinning on wikipedia].&lt;br /&gt;
&lt;br /&gt;
==== Interactive ====&lt;br /&gt;
I have started using svg to develop interactive displays.  Having used several other svg tools currently on the market, I am interested in a more generic implementation that doesn't have animation effects get in the way of interactive controls.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Playback of Construction Steps ====&lt;br /&gt;
We, at [Class Apart, http://www.classapart.org/], plan to use Inkscape in a manner similar to the classroom whitebord to create taught lectures and record the screen in an mpeg movie. The problem is that raster based formats would take about 50 MB for an hour of content, and does not go very well with our unstated goal of getting a whole course on a cd or all courses of a semester on one dvd. It would be great if we could store the construction steps of the svg keyed against time while recording. Then while playback we can patch the svg dom with the steps as needed, using something similar to smil script. How does one go about implementing this? We could find some members willing to implement.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Discussion]]&lt;/div&gt;</summary>
		<author><name>Freedo</name></author>
	</entry>
</feed>