Synfig Studio is a vector based 2D animation software for Mac

Synfig Studio for Mac

Synfig Studio for Mac

  -  72.2 MB  -  Open Source
Synfig Studio for Mac is a free and open-source 2D animation software, designed as powerful industrial-strength solution for creating film-quality animation using a vector and bitmap artwork.

It eliminates the need to create animation frame-by frame, allowing you to produce 2D animation of a higher quality with fewer people and resources. Synfig Studio is available for macOS, Windows, and Linux.



Features and Highlights

Layers
Synfig supports a multitude of layers of various types; geometric, gradients, filters, distortions, transformations, fractal and a few others.

Bones
Full-featured bone system allows to create cutout animation using bitmap images or control your vector artwork. The Skeleton Distortion layer allows to apply complex deformations to bitmap artwork.

Spatial resolution-independence
Most elements are vector-based, and all layers are parametrically generated, hence even when changing the target resolution of a project, the only pixelation will occur in imported raster images, not the built-in components.

Temporal resolution independence
Animation-keyframes are automatically interpolated by the computer, resulting in smooth motion

High Dynamic-Range Imaging (HDRI)
By using floating-point math in the image calculations, HDRI processing allows canvases to internally understand a far greater range of pixel luminance, resulting in better lighting effects, and improved color composition.

Sound support
The tool has basic features for syncing your animation with a soundtrack using Sound Layer. Linux users can get all benefits of full-featured audio editors through the JACK integration.

Pentablet-friendly tools
The draw tool can read the pressure sensitivity channel off your favorite tablets, for natural line weighting, and more to come!

Artist-oriented design
While it may not be obvious in this early state, Synfig (and its proprietary predecessors) has been designed from the ground up with animation workflow in mind.

Path-based Gradients
Unlike purely SVG-based vector software and most consumer-level animation programs, the app has full support for gradient paths - gradients that follow along a drawn shape. This allows artists to easily add soft shading to animation without the trouble of painting it onto every frame.

How to Use

Launch the app and choose New Project

Use the Toolbox to create vector artwork

Add layers for animation control and effects

Set keyframes on the timeline for animation

Preview your animation using the Play button

Export your final animation to video or image sequence

System Requirements
  • OS: macOS 10.10 or later
  • CPU: 64-bit Intel processor
  • RAM: 2 GB minimum (4 GB recommended)
  • Disk Space: 200 MB for installation
  • Graphics: OpenGL 2.0 compatible GPU
PROS
  • Free and open-source software
  • Advanced vector tweening features
  • Layer-based and non-destructive editing
  • Supports bitmap and vector artwork
  • Cross-platform compatibility
CONS
  • Interface can be unintuitive
  • Lacks built-in templates or presets
  • Occasional stability issues on macOS
  • Limited official documentation and support
Also Available: Download Synfig Studio for Windows

Why is this app published on FileHorse? (More info)
  • Synfig Studio 1.5.4 Screenshots

    The images below have been resized. Click on them to view the screenshots in full size.

    Synfig Studio 1.5.4 Screenshot 1

What's new in this version:

Highlights:
- Feature Enhancements: Several new capabilities have been introduced, such as an angle converter that supports integers, hotkeys for locking/unlocking past and future keyframes, a new 'Alpha Intersection' blending mode, and enhanced palette clipboard functionality. Additionally, initial support for SVG Text elements and Lottie Text Layers has been added.
- Stability and Quality Improvements: Numerous bug fixes address critical issues including rendering artifacts in outlines, undefined behavior during undo/redo operations after value conversion, crashes related to malformed PNG imports or null devices, and various UI/UX inconsistencies. Specific fixes include improved SVG importer behavior, corrected bline tool interactions, and resolution of font rendering issues.
- Performance and Code Refinements: Significant refactoring efforts have been undertaken, including the porting of several layers (Bevel, Noise gradient, HalfTone2 & 3) to the more efficient Cobra rendering engine. Other improvements include optimizing code for image sequence import, enhancing parameter passing by reference, and general code style cleanups.

Changed:
- fix: drag-n-drop import when filename contains non-latin chars
- refactor: update macOS icons to higher resolutions
- refactor: add move constructor to handle/loose_handle/rhandle
- fix: change convert.exe syntax to avoid clash in Windows
- fix: convert.exe directory and missing extension
- fix: Lottie export failure with Japanese locale setting in Windows
- refactor: avoid macro in header file of ValueNode_Composite
- fix: clang build (and bump macOS version)
- fix: Upgraded MLT version from '7.2.0' to '7.28.0' under MSYS2 environment
- fix: uninitialized var and mixed declaration/definition of class
- fix: color/gradient dialog edits the parameter that opened itself
- feat: add "copy all" for Paste Options dialog
- chore: fix various typos
- refactor: rename setup and help-about actions - preparing to macOS
- fix: proper reset of bonesetup size in WorkArea
- refactor: Filesystem::remove_recursive() uses Path
- feat(SVG): naive support to Text element
- fix: handle (Radial)Composite valuenodes via Widget_Curves
- refactor: simpler gradient render task declarations
- refactor: add move constructor and move assignment operator to ValueDesc
- ci: Resolve error when build dir cannot be removed after previous (failed) run
- ci: Add workflow to automatically generate release notes for GitHub releases
- ci: Add automatically showing contributors how their pull requests affect the release notes
- fix(ci): show-pr-change-note not working with prs from forks
- refactor: minor cleanup on Plant layer
- fix: regression: couldn't edit color or gradient of multiple layers
- chore: update .gitignore to exclude build files
- fix: julia Set used to ignore Bailout parameter
- fix: make FileSystem::write_block() return the number of bytes actually written
- fix: resolve issue with toolbar space remaining visible after hiding
- fix: prevent potential null pointer dereference in ValueDescDisconnect action
- refactor: cleanup Layer::get_sub_renddesc*() methods
- fix(mod_ffmpeg): resolve missing audio export and incorrect error message display
- build(MSYS2): add missing libraries to archive
- refactor: minor changes on Freetype layer
- refactor: remove unused CanvasInterface::auto_export() method
- fix: crash when trying to link to polygon instead of spline
- fix: crash with positive sound delay for MLT >= 7.20
- fix: possible double free due to multithreading with Contour
- fix: importing image sequence failed when there was no duplicates
- refactor(Action): avoid direct use of etl::handle
- fix: prevent crash due to null pointer dereference in Action::LayerEncapsulateSwitch
- ci(Github Actions): bump Ubuntu version
- fix: some Coverity Scan reports
- fix(lottie): Prevent SameFileError when exporting assets already in the images directory
- refactor: reduce visibility of internal variable members of Layer_Bitmap
- build(ETL): cleanup dismissed ETL dependencies
- fix: History panel didn't show sub-actions anymore
- feat(dialog): add Enter key support to accept user choice
- refactor: make code for importing image sequence more readable
- fix(lottie): add missing import for Advanced Outline
- refactor: port more layers to Cobra renderer: HalfTone2 & 3
- fix(ui): refresh Parameters panel after undo/redo
- fix: FileSystem::remove_recursive() removes the directory itself too
- fix: couldn't create converter to spline tangent or spline width (regression)
- fix(audio): add length check for MLT track loading
- fix(ui): rectify wayland window icon
- fix: modifying waypoints for a group layer no longer modifies sibling layers
- fix: fix shift in gradient layers
- fix: bump HalfTone2 and HalfTone3 layer versions after porting to Cobra
- fix: Fix bug displaying "Unable to resolve " on project load
- refactor: port XORPattern layer to Cobra renderer
- feat: added support for setting playback interval through movable buttons
- fix(GUI): add missing icon for type transformation
- chore: bump year to 2025
- feat: "Angle" converter for real -> angle conversions
- refactor: remove commented-out code in HalfTone3 layer
- chore: fix internal error message for TaskFilterPixelSW
- fix: prevent crash due to null devices in DeviceManager from libgtkmm
- refactor: rename pre_run() parameters of TaskPaintPixelSW and TaskFilterPixelSW and fix code style
- fix: missing template argument : compiler in FreeBSD complained
- feat(lottie): add support for Text Layer
- fix: avoid buffer overflow in Widget_SoundWave
- refactor: make debug variable const in ValueNode_Bone
- fix(lottie): allow to export SolidColor layer from old sif files
- refactor: remove the optional "group" property of layer parameters
- fix: new ValueNode_Angle couldn't be loaded because of tag name clash
- fix(advanced outline layer): the outline on the last vertex of spline
- fix(GUI): add missing icons for various bone types
- fix(bline tool): couldn't create the spline right after user drags the first vertex
- fix(text tool): some fonts render corrupted text
- fix: border computation for raster image with Transformation task
- feat: add new Map Range valuenode
- fix(advanced outline): fix rendering of width point in non-homogeneous position
- fix(bline tool): ignores double-clicking if without any created point
- fix: SVG importer kept two vertices on closing (Z) a SVG path
- chore: bump synfig versions for issue template & appveyor files
- fix(SVG importer): tangents were merged if curve exists after straight line
- refactor: port layer to Cobra renderer: Noise gradient
- perf(Shade layer): do not insert blur task if none specified
- feat: palette clipboard functionality
- feat(blend method): new blending mode: Alpha Intersection
- refactor: prefer passing by reference instead of copy
- fix: prevent negative bline/brush width in rectangle state and constrain the range
- fix(mod_png): prevent crash when importing malformed png files
- refactor: port layer to Cobra renderer: Curve Gradient
- refactor: port Bevel layer to Cobra engine
- fix(advanced_outline): incorrect width rendering on open outlines
- feat: added a way to easily access the rendered file
- ci(Github Actions): bump macOS version (13 Ventura -> 14 Sonoma)
- ci(Github Actions): bump macOS version (14 Sonoma -> 26 Tahoe)
- fix: undefined behavior when user convert a value, change it, undo tw…
- feat: add hotkeys for locking/unlocking past & future keyframes (Fixes #3638)
- feat: angle converter can now be used for integers
- fix(rendering): remove artifacts in rendering outlines by increasing sampling resolution
- chore: Bump year to 2026
- chore: Update CLI help (seconds to synfig time)
- chore: Release version 1.5.4