Skip to main content

FreeCAD Simple Animation Workbench

Project description

Inbetweening

logo

donate Liberapay GitHub Repo stars GitHub

Inbetweening (abbreviated as i10g) is a WYSIWYG (What You See Is What You Get) animation workbench for FreeCAD. It enables you to save the current placement, visibility and color of an assembly, composed of App:::Link objects, as an animation "step". The workbench interpolates between steps to create smooth transitions. It can be used to create exploded-view animations.

GIF

Example of a GIF exported using i10g

If you find this workbench useful, please consider supporting my work on Liberapay or PayPal. Starring and sharing also helps! Thanks!

Features

  • Create transitions between different states of visibility, placement and color
  • Preview animation in realtime
  • Export images, videos and gifs

Note: Object rotation is simplified to the shorter path

Getting Started

Prerequisites

If you have problems with the exported video/GIF, please check your ffmpeg version. For me 4.3.2 (bundled with the flatpak build) and the latest 4.4 version produce artifacts in the outputed GIF or doesn't have support for the parameter image2pipe

Tested on linux

Installing

Python pip

Please check if the current python environment is the same used in your installation of FreeCAD

python3 -m pip install i10g

or

python3 -m pip install https://github.com/anderson-/inbetweening/archive/refs/heads/main.zip

Linux

wget -qO- https://github.com/anderson-/inbetweening/archive/refs/heads/main.zip | busybox unzip -d ~/.FreeCAD/Mod -

Usage

Before starting, I reccommend to backup your work, and consider creating an extra file for the main assembly, importing each part as an App::Link by using the Std LinkMake button.

Toolbar Overview

Add an Animation folder object to the current document, the current scene is set as the first step of the animation

Create an example document

Adds another step to the end of the current animation

In the tree view represents the current selected step, the other steps should have the icon

Duplicate the current selected step

Updates the selected step to reflect the current scene

Controls the animation preview

Export the current view using parameters from Animation folder

Export video file using parameters from Animation folder

Export GIF file using parameters from Animation folder

Abort the export process

Example

This example can be created automagically using the button

  1. Create a Part::Box, add it to a App::Part, and make it not visible

  2. Create 3 App::Link, and position them side by side, this will be the first animation step

  3. Select the i10g workbench and click to add an Animation folder, it should already set the current scene as the first step

step0

First step

  1. Move all the cubes, 10mm up
  2. Set Visibility = False for the first one
  3. For the second one:
    • Set OverrideMaterial = True
    • Change ShapeMaterial color to red
  4. Rotate the third one by 90°

step1

Second step

  1. Click to add a step

  2. Click to preview the animation

  3. Select Animation folder in the tree, set FFmpeg path and set Resolution to 426x240

  4. Click to export a GIF file

GIF

Result

Example of a 4k/2160p (3840x2160) 60fps video export: https://www.youtube.com/watch?v=RZUoOqqV1uE

Development

To reload the workbench for easy development, use the folowing command in the python console:

Gui.activateWorkbench('Inbetweening'); App.DEV=1; Gui.runCommand('ReloadWorkbench')

Acknowledgments

Special thanks to Lorenz Lechner - @looooo for his work on the workbench_starterkit and freecad.gears

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

freecad.i10g-0.0.1.tar.gz (27.2 kB view hashes)

Uploaded Source

Built Distribution

freecad.i10g-0.0.1-py3-none-any.whl (36.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page