A vector based 2D animation software for Windows PC

Synfig Studio (64-bit)

Synfig Studio (64-bit)

  -  106 MB  -  Open Source
  • Latest Version

    Synfig Studio 1.5.3 (64-bit) LATEST

  • Review by

    Sophia Jones

  • Operating System

    Windows XP64 / Vista64 / Windows 7 64 / Windows 8 64 / Windows 10 64

  • User Rating

    Click to vote
  • Author / Product

    Robert Quattlebaum / External Link

  • Filename

    SynfigStudio-1.5.3-2024.08.23-win64-3b7c5.exe

Synfig Studio 64-bit is a free and open-source 2D animation software, designed as a powerful industrial-strength solution for creating film-quality animation using a vector and bitmap artwork. It eliminates the need to create an animation frame-by-frame, allowing you to produce 2D animation of a higher quality with fewer people and resources. Synfig Studio is available for Windows, Linux, and macOS.



It offers a comprehensive suite of tools for artists, animators, and designers to bring their creative visions to life. With its vector-based approach and advanced features, the program caters to both beginners and professionals in the animation industry.

Key Features
  • Vector Tweening: It utilizes vector tweening techniques, allowing users to create smooth and fluid animations.
  • Bone System: The software offers a sophisticated bone system for character rigging and animation, enabling users to create complex character movements easily.
  • Layers and Filters: It provides a wide range of layers and filters, including gradients, distortions, and transformations, to enhance the visual quality of animations.
  • Keyframe Animation: Users can animate objects and characters using keyframes, providing precise control over timing and motion.
  • Multiplatform Support: The program is available for Windows, macOS, and Linux, ensuring compatibility across different operating systems.
User Interface

It features a clean and intuitive user interface, with customizable layouts and panels to suit individual preferences. The interface is designed to streamline the animation workflow, making it easy for users to access tools and features efficiently.

Installation and Setup

Installing this tool is straightforward on all supported platforms. Users can download the installer from the official website (you may have to make a donation) or FileHorse and follow the on-screen instructions to complete the installation process. The software does not require any additional dependencies, making it easy to set up.

How to Use
  • Creating a New Project: Launch the app and select "New" from the File menu to create a new project. Choose the desired canvas size and frame rate for the animation.
  • Adding Layers: Use the Layers panel to add various elements to the canvas, such as shapes, images, and text.
  • Animating Objects: Select the object you want to animate and set keyframes for its properties, such as position, scale, and rotation.
  • Using the Bone Tool: Utilize the Bone Tool to create skeletal rigs for characters and objects, allowing for more natural movement and deformation.
  • Rendering the Animation: Once the animation is complete, go to the File menu and select "Export" to render the animation in the desired format.
FAQ

Is Synfig suitable for beginners?
Yes, it offers a user-friendly interface and comprehensive documentation, making it accessible to beginners.

Can I import images and videos into Synfig Studio?
Yes, it supports importing various file formats, including images and videos, for use in animations.

Does Synfig Studio support audio synchronization?
While the software does not have built-in audio synchronization features, users can import audio tracks and manually synchronize them with animations.

Can I export animations in different formats?
Yes, it supports exporting animations in various formats, including GIF, MP4, and AVI, among others.

Is Synfig Studio compatible with other animation software?
It uses its file format (.sif) but supports importing and exporting files in other common formats, allowing for interoperability with other animation software.

Alternatives

Adobe Animate: A comprehensive 2D animation software with a wide range of features and industry-standard tools.

Toon Boom Harmony: A professional animation software known for its powerful rigging and compositing capabilities.

OpenToonz: A free and open-source animation software used for traditional 2D animation production.

System Requirements

OS: Windows 11, 10, 8 or 7

PROS
  • Free and open-source
  • Comprehensive set of features
  • Flexible and customizable
  • Multiplatform support
  • Active community and documentation
CONS
  • Steeper learning curve for beginners
  • Some advanced features may require additional learning
Conclusion

Synfig Studio is a powerful and versatile 2D animation software that caters to both beginners and professionals alike. With its extensive feature set, intuitive user interface, and cross-platform compatibility, it offers a compelling alternative to commercial animation software.

While it may have a learning curve for newcomers, its wealth of documentation and active community support make it an excellent choice for anyone looking to create high-quality animations without breaking the bank. Whether you're an aspiring animator or a seasoned professional, it has the tools and capabilities to bring your creative visions to life.

Also Available: Synfig Studio (32-bit) and Synfig Studio for Mac

  • Synfig Studio 1.5.3 (64-bit) Screenshots

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

    Synfig Studio 1.5.3 (64-bit) Screenshot 1
  • Synfig Studio 1.5.3 (64-bit) Screenshot 2
  • Synfig Studio 1.5.3 (64-bit) Screenshot 3
  • Synfig Studio 1.5.3 (64-bit) Screenshot 4
  • Synfig Studio 1.5.3 (64-bit) Screenshot 5

What's new in this version:

Synfig Studio 1.5.3 (64-bit)
- Fix: Missing install-sh script on MacOS [core] [studio]
- refactor: clean up Bevel layer [core]
- chore: Make sure to update vcpkg.json on every release
- Bump version to 1.5.3 [ETL] [core] [studio]
- build(Github Actions): fix macOS build
- ci: Build source tarballs on self-hosted CI runner
- chore: typo transfRomation -> transfoRmation [core]
- chore: Fix generation of source packages using Autotools (again) [core]
- chore: Fix generation of source packages using Autotools [ETL]
- build: fix macos build
- chore: update Change Log for 1.4.5
- perf: minor optimization of Bevel layer [core]
- style: use of eof() and override for filesystem [core]
- build: unify cmake build shell scripts
- refactor: make surface[_etl]::blit_to() const [core]
- ci: Add CI action for OSX packaging script
- build: update script for building with cmake
- refactor: remove broken (and unused) symlink
- chore: avoid installation of unused sdl2_mixer
- perf(GUI): don't render frame thumbnails if disabled [studio]
- chore: update ChangeLog for version 1.4.5
- chore: removed zh-Hant locale as it has zero translations [core] [studio]
- chore: Update Transifex config to APIv3
- fix: build on OSX 10.9 [core]
- refactor: port CurveWarp to Cobra renderer engine [core]
- fix(MotionBlur): undefined behavior when subsample range is 0 [core]
- feat: added ability to set colors for a dark theme for curves [studio]
- build: Add cmake to linux install script
- chore: Add CONTRIBUTING.md and CODE_OF_CONDUCT.md
- build: fix typos on magickpp module [core]
- fix: importing via magick++ for version >= 7.0.1 [core]
- fix: undo didn't work properly after deleting last guide line [studio]
- refactor: remove unused variable [core]
- feat: add WebM video format to ffmpeg codecs list [core] [studio]
- fix: adjust minimum panel size [studio]
- feat: add Magick++ as possible importer too [core]
- refactor: reduce scope of two variables [core]
- ci: caching logic changed
- ci: bump github actions version
- build: CMake sets wrong Synfig Studio/ETL versions
- ci(commitlint): disabled rules for subject-case
- fix: add fill-color instead of outline-color to palette [studio]
- chore: script version-bump.sh must update CMake files
- fix: guide lines ignored on loading from old files [core]
- refactor: port layer to Cobra renderer: Metaballs [core]
- feat: add missing scroll bar to Paste Layer dialog [studio]
- fix: synfig::OS::RunPipeWin32::is_open() return on fail [core]
- feat: allow to change resource filepath in Canvas Dependencies dialog [studio]
- fix: no need to show "Icon" header text to Layers Panel [studio]
- fix: mingw cross-build [core]
- chore(build): add support for installing build dependencies in Red OS
- refactor: drop SIF file in Toolbox now uses filesystem::Path [studio]
- feat: layers and parameters trees can now be styled with even/odd rows [studio]
- fix: use u8_str() instead of c_str() for filesystem::Path [core]
- fix: mouse clicks while dragging ducks prevent DRAG from resetting [studio]
- refactor: remove unused #include [core]
- refactor: remove unused #include segment.h [core]
- fix: dropped image file doesn't load (broken conversion URI to file path on Win32) [core] [studio]
- fix: memory leak when the load default palette button is repeatedly pressed [studio]
- fix: store a more precise distance value on settings file [studio]
- fix: prevent accessing invalid index while parsing Distance string [core]
- fix: units in Tool Options panel didn't follow app settings (regression) [core] [studio]
- fix: ListImporter was not able to fetch the right files on synfig CLI [core]
- refactor: prefer synfig::filesystem::Path rather than synfig::String or std::string [core] [studio]
- fix: memory leak on Layer_Freetype [core]
- fix: missing OS namespace for MSVC compiler code [core]
- fix: build on Debian 9 [core] [studio]
- chore: PVS-Studio has been added to the list of organizations
- feat: added presets to canvas resize window [studio]
- refactor: cleanup an old debug line [core]
- fix: unable to open file paths longer than 23 characters on Windows [studio]
- refactor: icon controller now uses synfig::filesystem::Path [studio]
- refactor: create load_interface() on ResourceHelper [studio]
- refactor: App::brushes_path now uses synfig::filesystem::Path [studio]
- refactor: remove unneeded macro stratof [studio]
- refactor: replace unsafe sprintf() with snprintf() [core]
- fix: recent file list is reversing every time Synfig Studio launches [studio]
- fix: restore the tools hotkeys [studio]
- fix: update Solid Color layer name in Lottie exporter [studio]
- ci(Github Actions): bump macOS version
- refactor: OS::launch_file_async() now uses synfig::filesystem::Path [core] [studio]
- fix: restore icons for Tools menu [studio]
- feat: add Layers, Parameters and Timetrack treeviews styles for even/odd rows [studio]
- refactor: dialogs for document opening now use filesystem::Path [studio]
- feat: add "invert" parameter to ChromaKey layer [core]
- refactor: dialogs for saving and exporting now uses filesystem::Path [core] [studio]
- fix: column 'name' of Layers panel should be the largest one [studio]
- ci: added backtrace output in case of build crash
- refactor: synfig::OS::get_binary_path() doesn't require a fallback anymore [core] [studio]
- refactor: avoid compiler warning: missing parentheses around assignment [studio]
- fix: file ETL/clock was moved to synfig-core [core]
- feat: workaround to allow to alternate even/odd row colors for Timetrack [studio]
- refactor: remove unused #include (somehow missed in #3141) [core]
- refactor: remove compiler warning about missing override keyword [studio]
- refactor: clean etl::handle and alike [ETL] [core] [studio]
- feat: widget Timetrack now can have its own color for selected row [studio]
- feat: add CSS classes and id to widgets/panels to allow visual customization [studio]
- refactor: prefer synfig::filesystem::Path rather std::string [core] [studio]
- refactor: use synfig:filesystem::Path for sketch, palette & others [core] [studio]
- fix: issues when importing with absolute paths from different root path [core] [studio]
- refactor: prefer range-based for loop and avoid direct etl::handle [studio]
- fix(Windows): plugins fail to execute for files with non-latin characters [core] [studio]
- refactor: avoid direct use of etl::handle [core] [studio]
- refactor: remove not-needed 'using namespace etl' [core] [studio]
- fix: fixed macOS Info.plist file
- refactor: make Filesystem::filename a filesystem::Path object [core] [studio]
- fix: scale value of transformation on Parameters Panel is dimensionless [studio]
- fix: preview window not showing when there is a Layer_Sound [core]
- fix: revert Custom Workspaces Editor button labels to GTK ones [studio]
- refactor: increase the pixels per frame without render split in Target_Scanline [core]
- fix: avoid parser error of focus point on loading malformed synfig file [core]
- perf: optimized Action_System so that the canvas only renders once during an action [studio]
- refactor: avoid build warning due to unused parameter [core]
- fix: new MotionBLur subsampling None used wrong blend method [core]
- feat: layer Motion Blur now can create an non blurred trail [core]
- refactor: port more layers to Cobra renderer: some Gradient layers [core]
- fix: toolbox isn't updated when switching document tabs [studio]
- refactor: remove old macOS specific code [studio]
- fix(plugin): requesting current_time invalidates JSON data [studio]
- refactor: avoid g++ 13 compiler warning [core]
- fix: uninitialized value in ValueNode_DynamicList::ListEntry::amount_at_time() [core]
- feat: added path and button to open plugin folder in Preferences window [studio]
- fix: timetrack toolbar disappears when closing a file [studio]
- style: indentation inconsistencies in state_circle.cpp [studio]
- fix: missing cstring header in png_trgt [core]
- fix(plugins): crash when selected layers are optional and there is none [studio]
- fix: current time widget color in dark theme [studio]
- refactor: remove unneeded special XML encoding for subtract valuenode [core]
- refactor: remove unnecessary const in internal typedef [core]
- fix: wrong Copy and Cut icon names [studio]
- fix: filesystem::Path::relative_to() didn't work for empty paths [core]
- fix: preferences dialog should list only themes with index.theme file [studio]
- fix: build on Debian 9 [core]
- refactor: replaced Gtk::StockID in tool labels with custom implementation [studio]
- refactor: sketch filename now uses filesystem::Path [studio]
- fix: fixed icons in Preferences dialog in Windows [studio]
- fix: brush tool crashes synfig if no layer is selected in the dialog [studio]
- refactor: add missing fallthrough mark in other switch cases [core]
- feat: double clicking guides opens edit dialog [studio]
- refactor: add fallthrough mark in switch cases to avoid unneeded warning [core] [studio]
- perf: use reference, not copy, on range-based for loops [core] [studio]
- refactor: make argument name consistent in method declaration and definition [studio]
- chore: add .cache folder to .gitignore
- fix: restore shortcuts for edit cut/copy/paste and app quit [studio]
- refactor: remove unused actions [studio]
- fix: find the second closest guide no matter the guide list order [studio]
- fix: filename was shown truncated in Render dialog [studio]
- style: prefer override rather virtual, spaces surrounding const [studio]
- refactor: remove unneeded variable in state_normal.cpp [studio]
- refactor: prefer icon names rather deprecated Gtk::StockID [studio]
- refactor: remove unused cursor methods in studio::IconController class [studio]
- fix: tool tooltip didn't show the shortcut/hotkey [studio]
- fix: properly report failure on pipe creation on POSIX systems [core]
- refactor: brush size increase/decrease buttons now use theme icons [studio]
- fix: make delete icon name independent of old Gtk [studio]
- refactor(Time): change epsilon_() method to constant; remove c_str() [core]
- refactor: remove unused ParamDesc constructor argument [core] [studio]
- refactor: delete old debug envvars that aren't needed anymore [studio]
- fix: restore Save All shortcut missing since #3072 [studio]
- fix: some icons didn't follow icon theme [studio]
- refactor: remove unused macro [studio]
- fix: avoid crash if icon theme does not provide type_bool_icon file [studio]
- refactor: remove unneeded target_names variable from RenderSettings dialog [studio]
- refactor: minor cleanup in synfig-core/tool/main.cpp [core]
- refactor: use a common function as base to App::dialog_open_*() and simplify methods [core] [studio]
- refactor: create filesystem::current_path() and filesystem::absolute() [core]
- refactor: prefer initialization list on constructor [core]
- refactor: avoid malloc() [core]
- refactor: synfig-cli job now uses filesystem::Path [core]
- refactor: cleanup Target::BookEntry [core]
- refactor: minor cleanup in state Lasso and Draw [studio]
- refactor: render settings dialog now uses synfig::filesystem::Path [studio]
- fix: allow string to be properly translated [studio]
- refactor: update studio_menubar.xml [studio]
- refactor: prefer initialization list rather constructor body [core] [studio]
- refactor: throw exception itself, not a copy [studio]
- feat: plugins can have simple dialog and receive current time and selected layer xpath [studio]
- refactor: prefer prefix ++ operators for non-primitive types (part 2) [core] [studio]
- feat: always show "Add Waypoint" menu item for animatable parameters [studio]
- refactor: prefer prefix ++ operators for non-primitive types [core] [studio]
- refactor!: rename action "KeyframeToggl" as "KeyframeToggle" [studio]
- refactor: add missing const to Duckmatic::add_to_ducks() parameter [studio]
- refactor: list document actions in a std::vector to better readability [studio]
- refactor: add missing const on some synfig::ParamDesc methods [core]
- feat: added the ability to rotate guides in the canvas [studio]
- refactor: prefer Layer_*::Handle and alike rather etl::handle [core] [studio]
- refactor: move save_all() (documents) from CanvasView to MainWindow [studio]
- refactor: prefer CanvasView::Handle & others instead of etl::handle [studio]
- refactor: remove unused synfig::rendering::Resource [ETL] [core]
- fix: Toolbox panel wasn't updated on switching tools via shortcuts [studio]
- fix: update Tool tip when user changes its shortcut at runtime [studio]
- feat: add handles to Bevel layer parameters [core]
- fix: Width handles must be visible with Skeleton layer [studio]
- build: fix make distcheck build [core] [studio]
- test: use preset variable of AutoTools to some directories [core] [studio]
- chore: update changelog
- fix: fix dependencies script for ALT Linux
- refactor: rename method to get_link_description(...) to avoid ambiguity [core] [studio]
- refactor: avoid mutable vars in Layer [core]
- refactor!: move filepath handling methods to synfig::filesystem::Path [ETL] [core] [studio]
- fix: pasting of external exported valuenodes [studio]
- feat: new Chroma Key layer [core] [studio]
- refactor: removed unused members of CanvasView [studio]
- test: marking_node_as_changed_changes_the_last_time_changed fails on AppVeyor [core]
- refactor: code cleanup in Targets [core]
- fix: possible invalid memory access on replacing valuenodes [core]
- fix(canvas-dependencies): properly identify the file to avoid clash [studio]
- refactor: remove unused method in CanvasFileNaming [core]
- refactor: remove unused #include [core] [studio]
- ci: enabled tests on GitHub Actions [ETL] [core] [studio]
- fix: added a missing init_children_vocab() call in ValueNode constructors [core]
- fix: sigsegv when LANGUAGE/LANG environment variable is not set [core]
- refactor: joblistprocessor code split into smaller functions [core]
- feat: cleaner cli render progress output [core]
- feat: added ability to choose render engine from command line [core] [studio]
- fix: missing translation for plugin names in main menu [core] [studio]
- refactor: simplified target_scanline.cpp [core]
- chore: fix various typos [core] [studio]
- feat: add a CLI flag(--set-repeats) for rendering the same target multiple times [core]
- refactor: remove useless return statement at the end of a function [studio]
- refactor: remove deprecated Widget::override_color() [studio]
- refactor: use RadioToolButton instead of ToggleToolButton for tools dock [studio]
- build: patch for autoconf 2.72 h/t Frédéric Bérat
- refactor: replace deprecated Gtk::HBox with Gtk::Box [studio]
- chore: fix typo in comment in valuedescset.h [studio]
- fix: inconsequential fixes regarding synfig::rendering::Tokens [core]
- build: change exported cmake targets and provide a way to find deps [core]
- fix: drawing tablet didn't work on Wayland [studio]
- fix: missing CanvasResize files in POTFILES.in [studio]
- refactor: prefer ::Handle rather etl::handle [core] [studio]
- feat: simplified canvas resize [core] [studio]
- refactor: change VectorizerSettings dialog to use Glade and Builder [studio]
- refactor(valuenodes): remove some unused #include [core]
- fix: build on Ubuntu 16.04 [core] [studio]
- ci: enabled ImageMagick
- fix: vectorizer not working when Switch layer uses Layer Depth, not Name [studio]
- refactor(instance): cleanup in add_special_layer_actions_to_group [studio]
- refactor(iconcontroller): list icons in std::vector to better readability [studio]
- perf: don't iterate the whole Canvas if index is negative [core]
- refactor: cleanup module.cpp [core]
- refactor: replaced deprecated hvseparator include by separator [studio]
- refactor: use camelcase for MotionBlur and SolidColor layer names [core] [studio]
- refactor: micro cleanup in iconcontroller [studio]
- refactor: create methods strtolower() and strtoupper() to change cases [core] [studio]
- fix: preview dialog now shows the correct start and end times [studio]
- refactor: rename CanvasView::toggle_show_toolbar() to set_show_toolbars() [studio]
- refactor: remove unused #define POPEN_BINARY_READ_TYPE [ETL]
- refactor: move etl::reference_counter to synfig namespace [ETL] [core] [studio]
- refactor: replaced deprecated signal_pressed() with signal_clicked() [studio]
- feat: added hotkey for duplicate layer button [studio]
- chore: bump year to 2023 [studio]
- refactor: remove useless initialization in blur [core]
- fix: support FontConfig older than version 2.11.91 [core]
- feat: added missing icons and more [studio]
- fix: show/hide main window toolbar should affect both toolbars [studio]
- refactor: removed deprecated Gtk::VBox and get_vbox() [studio]
- refactor: remove commented-out methods since march 2005 [studio]
- refactor: added internal escape_underline() in MainWindow [studio]
- refactor: move workspace methods from App to MainWindow [studio]
- fix: get_binary_path() for FreeBSD, DragonFlyBSD, NetBSD and OpenBSD [core]
- style: some indentation inconsistencies in app.cpp [studio]
- fix: no context menu when right-clicking on waypoint [core] [studio]
- refactor: rename load_file_window_size() to load_recent_files() [studio]
- fix: typo in future menubar [studio]
- refactor!: move ETL blur files to the new synfig/blur folder [ETL] [core] [studio]
- fix: use format string instead of string concatenation [studio]
- refactor: switched MainWindow to Gtk::ApplicationWindow [studio]
- fix: allow to open external editor for tiff, ppm (& variations) and webp [studio]
- fix: wrong Papagayo file extension in Canvas Dependencies dialog [studio]
- refactor: no need to change locale on saving accel map [studio]
- chore: update ChangeLog
- refactor: remove unneeded using namespace etl and Action [core] [studio]
- chore: added build-cmake/ folder to .gitignore
- chore: added license description in readme
- feat: added support for Ctr+<num> hotkey to change animation tabs [studio]
- refactor: removed unused #includes [core]
- fix(ffmpeg): logic for detection of image-only videos was inverted [core]
- revert: "fix: after exporting audio via ffmpeg, SoundProcessor wasn't stopped" [core]
- fix: after exporting audio via ffmpeg, SoundProcessor wasn't stopped [core]
- fix(ffmpeg): do not try to export audio for gif or mng [core]
- feat: eyedropper tool now takes fill color instead of outline color by default [studio]
- ci: added synchronize to the list of processed events
- refactor: cleanup etl blur files [ETL] [core]
- fix: canvas dependencies dialog crashes with empty filenames or without extension [studio]
- ci: bump Ubuntu version
- ci: bump GitHub actions
- ci: added conventional commits style check for PR titles
- refactor: move pen classes from ETL to synfig-core [ETL] [core]
- refactor(UI): rename Eyedrop Tool to Eyedropper Tool [studio]
- refactor: use some current C++-11 or gtkmm-3 methods [studio]
- fix: don't list empty filenames on Canvas Dependencies dialog [studio]
- feat: New and updated icons for "width interpolation" [studio] [core]
- feat: add Show Canvas External Dependencies dialog [core] [studio]
- test: fix synfig/benchmark test build [core]
- refactor: avoid std::iterator_traits in ETL/gaussian [ETL]
- fix(lang): Spanish translation typo [studio]
- refactor(NoiseDistort): remove useless method, argument, intermediate var [core]
- build(appveyor): added missing libpcre2
- refactor: cleanup on ETL/pen [ETL]
- refactor: minor cleanup in ETL box_blur [ETL]
- refactor: removed unused Gtk::IconSIze [studio]
- refactor: remove some unused methods and add docs to synfig::surface [core]
- refactor: move ETL/misc to synfig/misc.h [ETL] [core] [studio]
- fix: Fixes issue #2857 when changing interpolation of Canvas parameter changes interpolation for other waypoints [core]
- ui: Rename "Target" dropdown to "Module" in rendering dialog [studio]
- refactor!: move ETL/surface to synfig/surface_etl.h and its test file [ETL] [core]
- refactor: remove unused class debugclass [studio]
- chore: fix typos [core] [studio]
- perf: avoid double computation [core]
- fix: hide bone width handles when they are meaningless [studio]
- refactor: remove unused alternative clamping functions [ETL] [core]
- refactor: remove some unused #include directives [core]
- fix: use correct abs() function for integer variable [core]
- refactor: remove Accumulator type for etl::pen and etl::surface [ETL] [core]
- refactor: remove unused methods in blur.cpp [core]
- feat(studio): added buttons to change interpolation for selected waypoints [studio]
- refactor: move non-portable popen code to one place [core] [studio]
- perf: improved performance by reducing memory copying when working with valuenodes [core] [studio]
- refactor!: etl::bezier and etl::hermite are now in synfig folder and namespace [ETL] [core] [studio]
- build: updated dependencies for Debian 11 based distros
- refactor: cleanup, add docs and merge ETL/hermite with ETL/bezier [ETL] [core] [studio]
- fix: use runtime check of openGL availability, instead of compile-time [studio]
- feat: Added support for scrolling through text in text paragraph dialog [studio]
- fix: broken opengl build (due to ETL_DIRECTORY_SEPARATOR) and typos [core]
- fix: prevent crash or hang when frame cannot be imported [core]
- feat: reduced displayed floating point precision [core] [studio]
- build(cmake): fixed build when path contains non-Latin characters (MSYS2) [studio]
- build(autotools): fix MSYS2 build [core]
- feat: ico format added to mod_imagemagick list of exported formats [core]
- refactor: replaced deprecated Gtk::Arrow with Gtk::Button with icon [studio]
- fix: "rule of two" : copy constructor and copy assignment operator [core] [studio]
- refactor: clean up Magick++ target a bit [core]
- fix: pressing the cancel button still adds the text layer [studio]
- build(vcpkg): cmake --install now also installs required dependencies [core] [studio]
- fix(msvc): fixed debug build in MSVC [core]
- build: Use vcpkg to build synfig [core] [studio]
- feat: added ability to show/hide rulers [studio]
- fix: params panel doesn't update after layer switch [studio]
- fix: avoid rebuild ParamTreeStore when animating a parameter [studio]
- chore: updated changelog
- refactor!: add etl::hermite::derivative() and remove ETL/calculus [ETL] [core] [studio]
- fix: hit_check for gradient & paste_canvas layers with BEHIND and ONTO blends [core]
- fix: Fixed issue with incorrect ffmpeg search on Windows [core]
- feat: added support for SVG image sequence with lst files [core]
- chore: fix source typos [studio]
- fix: check whether iterator is valid before dereferencing [studio]
- chore: fix various typos [ETL] [core] [studio]
- build: remove nonexistent files listed in synfig-core/po/POTFILES.in [core]
- fix: using invalid iterator in ValueNode_Bone [core]
- fix!: imagemagick didn't import anything [core]
- build(autotools): include UI files created via PR #2638 [studio]
- ci: disabled mod_magickpp in macOS builds
- chore: typo in comment [core]
- test: missing keyframe test in CMake [core]
- refactor: removed code from ImageMagick module commented out from 2005 [core]
- ci: Updated ChangeLog generator script
- fix: Interface background became white after clicking OK in Preferences dialog [studio]
- refactor: prefer FileSystemNative rather GLib [core]
- refactor: remove deprecated Gtk::StockID used by some Gtk::Image constructors [studio]
- fix: fixed broken synfig.dll debugging in MSVC build [core] [studio]
- fix: Alpha channel always resets when changing color in HSV wheel [studio]
- refactor: clean synfig::Target a bit [core]
- refactor!: remove etl::unix_to_local() [ETL] [core]
- chore: Fixed a typo in Preferences->Language dropdown [studio]
- fix: Fix cross-compilation with MinGW on Debian 11 [ETL] [core] [studio]
- revert: eliminate the need to set_time() on the search for bones [studio]
- fix: fixed a bug when saving a file to a Windows drive root path and then reusing the file dialog [ETL]
- test: Disabled failing test of synfig::Node class for now [core]
- fix: fixed build when MLT library not found [core]
- fix: synfig studio was not saving synfigapp settings on quit [studio]
- ci: bump macOS version
- fix!: for some layers hit_check() missed some blend method influence [core]
- fix: setting filename parameter of Layer Sound corrupts file [core]
- Merge PR #2712: refactor!: clean synfig::Keyframe [core]
- fix: small memory leak with Mlt++ [core]
- refactor: removed unused Widget_CompSelect [studio]
- Merge PR #2735: refactor!: move strprintf(), strscan(), etc from etl to synfig namespace [ETL] [core] [studio]
- test: create tests for synfig/string_helper.h [core]
- ci(AppVeyor): bump artifact version
- fix: Spline tool blocks hotkey presses [studio]
- build(CMake): moved synfig-core tests to bin/test folder [core]
- build(autotools): removed Apple G5-specific flags [ETL] [core] [studio]
- build(autotools): fixed node test build [ETL] [core] [studio]
- test: define ‘operator<<’ for operands std::string and std::nullptr_t [core] [studio]
- fix: Missing menu in Synfig when path to plugins contains non-Latin symbols (Windows) [studio]
- refactor: Replaced deprecated Gtk::StockID in Sets panel [studio]
- build(CMake): added synfig tests to CMake [core]
- Merge PR #2726: fix: Parameter & Library Panels are now more similar to TimeTrack Panel [studio]
- build(CMake): enabled mod_libavcodec build in CMake [core]
- Merge PR #2718: refactor!: smach class is now moved to studio namespace [studio]
- Merge PR #2733: refactor(ETL): delete unneeded etl_config.h [ETL]
- Merge PR #2715: refactor!: removed etl::angle; replaced by synfig::Angle [ETL] [core] [studio]
- fix: Indicate segments where points are disabled in Timetrack Panel (regression) [studio]
- fix(FreeType): Duplicating Text Layer resets Font Family parameter [core]
- fix: layers parameter 'filename' does not accept backslash as directory separator [core]
- Merge PR #2722: fix: palette loading [core]
- refactor: remove unneeded #include <ETL/misc> directives [core] [studio]
- refactor!: rename etl::clock to synfig::clock [ETL] [core] [studio]
- refactor: make use of synfig::clamp instead of std::max(std::min()) [core] [studio]
- Merge PR #2385: fix: Added missing timetrack marks (animated_file timepoints and active points on/off) [studio]
- refactor: Replaced deprecated Gtk::StockID in ResolutionDial [studio]
- fix: Synfig does not start if the OS username contains non-Latin characters (Windows) [core] [studio]
- Merge PR #2708: refactor!: clean etl::angle [ETL]
- refactor: Replaced deprecated Gtk::StockID in Palette Editor [studio]
- refactor: remove ETL_DIRECTORY_SEPARATORS; use them directly [ETL] [studio]
- test(etl): remove unused methods for etl::angle [ETL]
- test(etl): remove unused methods for etl::hermite [ETL]
- refactor(core)!: rename ValueNode::is_descendant() to is_ancestor_of() [core] [studio]
- refactor: use etl::is_separator() instead of directory separator chars [ETL] [core]
- refactor: use / as directory separator where a fixed folder name is used [ETL] [core] [studio]
- test(studio): as in synfig-core, separate test_base.h [studio]
- chore: update license statement for test_base.h [core]
- Merge PR #2699: refactor!: remove etl::ceil_to_int and etl::floor_to_int [ETL] [core] [studio]
- refactor: Replaced deprecated Gtk::StockID (non-visual) [studio]
- refactor: remove unused header/class synfig::Protocol [core]
- feat: Added support for Ctr+Enter to complete text input in Text tool dialog [studio]
- refactor: removed deprecated std::unary_function and std::binary_function classes [ETL] [core]
- fix: Synfig hanging after right-click on sub-sub-parameter [core]
- Merge PR #2695: refactor: remove NULL; use nullptr instead - part 2 [ETL] [core]
- Merge PR #2691: refactor: remove NULL; use nullptr instead [ETL] [studio]
- refactor: Replaced deprecated Gtk::StockID in WidgetLink [studio]
- refactor: Replaced deprecated Gtk::StockID in Widget Interpolation [studio]
- fix: Wrong color in HSV wheel when color was changed with paint bucket [studio]
- BREAKING CHANGE: replace etl::smart_ptr with std::shared_ptr [ETL] [core] [studio]
- refactor: Replaced deprecated Gtk::StockID in Filename widget [studio]
- feat: Reproducible build [core] [studio]
- refactor: Replaced deprecated Gtk::StockID in Parameters panel [studio]
- build(CMake): small refactoring and code cleanup [core] [studio]
- refactor: Replaced deprecated Gtk::StockID in Jack widget [studio]
- build: Added Jack audio support to CMake [studio]
- refactor: Replaced deprecated Gtk::StockID in Layers panel [studio]
- Fixed build warnings (GCC 9.4.0) [studio]
- chore: missing files in POTFILES.in for synfig-studio [studio]
- refactor(core): Cleaned up registration function [core]
- build: Use CMake's PkgConfig imported targets [ETL] [core] [studio]
- fix(bone-tool): new bone position when active bone is invalid [studio]
- fix: No context menu shown for Transformation parameter of Group Layer [studio]
- Merge PR #2465: Refactoring and bugfix for ValueDescBoneSetParent [core] [studio]
- Replaced deprecated Gtk::StockID in Preview window [studio]
- Replaced deprecated Gtk::StockID in Dockables [studio]
- Refactored KeyFrameDial class [studio]
- Replaced deprecated Gtk::StockId in DuckDial icons [studio]
- Replaced deprecated Gtk::StockId in FrameDial icons [studio]
- Replaced deprecated Gdk::Color with Gdk:RGBA [studio]
- Added a mnemonic for the text layer input dialog [studio]
- Refactored python search algorithm [studio]
- Fixed incorrect lines offset in Graphs Panel [studio]
- fix behavior after Tool process a key event: only proceeds when RESULT_OK [studio]
- Fixed issue with python search on Ubuntu 18 [studio]
- Fixed an issue with plugins not working when there are spaces in the Python path (Windows) [studio]
- [Studio] Hide "Make Parent To Active Bone" menu item when not using Skeleton Tool [studio]
- Fix ValueNode local name not being translated [core] [studio]
- Merge PR #2398: Make Node::parent_set private [core] [studio]
- Returned the ability to set a GTK theme using an environment variable [studio]
- Fixed empty "Icon Theme" dropdown in Preferences [studio]
- Fixed missing icons in tool options [studio]
- Added .glade/xml files for gtk::builder [studio]
- Merge PR #2632: Added basic support for Gtk theme [studio]
- Fix typo in source [core]
- [CMake] Added option to link with tcmalloc library [core] [studio]
- Removed old .cvsignore files
- Fix issue #2410 - Can't import file into a saved SIF animation (if both are on the same disk) [studio]
- Fix various typos [core] [studio]
- Fix crash when switching workspaces [studio]
- Update contributor name list [studio]
- improve output readability of unit tests with test_base.h [core]
- Added the ability to set the build type from the command line to the 2-build-msys-cmake.sh script
- Allow to call regression test script outside of Travis
- Added hotkey for grouping layers (Ctrl+G). Grid toggle hotkey changed to #. [studio]
- Fixed MSYS2 dependencies
- Added the ability to select the parent layer through the keyboard shortcut Alt+Page Up. [studio]
- Layer SuperSample: remove unused parameters and minor cleanup [core]
- simplify Widget_Sublayer by using Gtk::ComboBoxText [studio]
- Merge PR #2568: add new ValueNode "Modulo" for modulo operation [core]
- fix RendDesc::get_pixels_to_world_matrix() contents [core]
- [MSYS2] Removed patch for libintl
- [MSYS2] Updated packages list
- FFmpeg targets: allow to render alpha channel for webm and hap videos [core]
- eliminate the need to set_time() on the search for bones [studio]
- WIP - basic support for importing .kra (Krita) and .ora (OpenRaster) [core] [studio]
- Fixed PVS-Studio warning v730 [ETL] [core] [studio]
- Simplify "Render Mode ComboBox Changed" callback & add GL if available [studio]
- add documentation to some synfig::rendering stuff [core]
- make some cleanup on headers of synfig-core [core]
- add more synfig::Node tests [core]
- Ensure computed GUID is not zero [core]
- Merge PR #2535: Fix Bone Shape of Skeleton Deformation affected by Transformations [studio]
- bump LumaKey layer version: it now have less parameters [core]
- Add "destructive-action" and "suggested-action" to dialog when trying to quit before saving changes [studio]
- add "check" action to build.sh in order to run tests
- add missing Widget_Interpolation files in POTFILES.in [studio]
- create synfig::Node unit tests [core]
- Merge PR #2551: Port Luma Key to Cobra renderer engine [core]
- BlinePoint Origin is not coordinates, but a relative position (0.0-1.0) [core]
- Fixed ETL CMake tests [ETL]
- Added ability to set custom FFmpeg codec [studio]
- Added description to FFmpeg units for "Video Bit Rate" field (kbps) [studio]
- Create Widget_Interpolation: avoid code duplication and ease maintenance [studio]
- Removed unused "using namespace etl;" (Part 2) [core] [studio]
- remove not-implemented and unused method [studio]
- Merge PR #2534: Minor icon cleanup [studio]
- Use gtkmm Gtk::Settings instead of plain GtkSettings [studio]
- Merge PR #2518: Added the ability to select a compression method for zstreambuf [core] [studio]
- Removed unused using namespace etl; [ETL] [core]
- Update Installation section
- Removed "using namespace std;" [ETL] [core] [studio]
- Fixed PVS-Studio warning v656 [core] [studio]
- Bone Tool: Fix selection of active bone when clicking on a bone control point [studio]
- Show bone shape when Skeleton Deformation layer is disabled. Closes #1625. [studio]
- Fixed PVS-Studio warning v817 [core] [studio]
- Merge PR #2497: Porting to Gtk::Application - part 1 [core] [studio]
- FileSystem::Identifier::empty() returned wrong value [core]
- make "Background" (layer description) string translatable [studio]
- fix error message on Target_Scanline [core]
- Merge PR #2514: Fix text layer hit check for Text Layer (issue when size was too small). Closes #2508. [core]
- Re-enable "Create Child Bone" action [studio]
- Remove unused variables [studio]
- Bone Tool: Fixed issue where skeleton "name" wasn't updated as new Layers are created [studio]
- Merge PR #2499: Fix hit check for Layer_Freetype [core]
- make UIInterface::confirmation() implementation consistent to signature [studio]
- avoid decimal point in Distance strings due to i18n issues [studio]
- Removed unused alert message about experimental features [studio]
- Updated GitHub actions/cache version
- Minor cleanup on TypePair<Bone,Bone> usage [studio]
- Bone Tool: fix regression on Bone width auto change requested in #1658 [studio]
- Bone Tool:remove deprecated method set_alignment that use default values [studio]
- fix regression on loading and saving of settings Distance type (i18n) [studio]
- Merge PR #2480: Fix rendering of some glyphs [core]
- Layer_Sound is Layer_Invisible, not Layer_Composite [core]
- Update Github Issue Templates
- Svg_parser: fix not creating last vertex of cubic path segment [core]
- Fixed bug introduced in #2458: it should not return at that point [studio]
- Added ability for escape key to close editing box in Value column in the Parameters panel [studio]
- Merge PR #2466: Fix bone width handle visibility. Closes #2088. [studio]
- ValueDescSet for Skeleton Deformation bone: Minor refactoring and add return [studio]
- [MacOS M1] Fixed autotools build
- Refactored SynfigToolGeneralOptions singleton [core]
- Fixed Travis-CI broken link
- Fixed appdata.xml check CI
- Bone Tool: Correctly apply offset to Second bone when First bone of Skeleton Deformation Layer changed [studio]
- Fixed warning on MODULE_INVENTORY_BEGIN: misleading indentation [core]
- [Studio] Bone Tool: fix how to check for skeleton deformation [studio]
- Fixed potential null pointer dereferencing [studio]
- Refactored import file: added is_same_file method [studio]
- Added ability to import multiple files [studio]
- Merge PR #2449: Fix MSYS2 build
- Autotools: detects libpng via pkg-config [core]
- Autotools: remove code for very old libtool versions [core]
- [CMake] Improved libmng search [core]
- Wider time track space at start and end. Closes #2417. [studio]
- Fixed build warnings [core] [studio]
- [CMake] Improved search for libraries [core]
- Fix distance values on settings [studio]
- Svg_parser: primitive rect properly uses style [core]
- fix compilation warning for unused parameters on valuenode methods [core]
- Svg_parser: fix warning: unused parameters [core]
- Move variable closer to its use and rename it to avoid confusion [studio]
- Don't let user drag a waypoint to a time lower than current minimum [studio]
- Add completion to Widget_FontFamily [studio]
- Fix dragging area of a waypoint in CellRenderer_Timetrack [studio]
- Linux build: Autodetect number of threads
- Merge PR: [Core] fix access modifiers for valuenode classes [core]
- Svg_parser: remove unused properties & method, restrict var scope [core]
- Clear Redo History on new action by default; new user preference [studio]
- Studio: avoid lambda functions for signal callbacks [studio]
- Merge PR: Moved layer and valuenode iteration methods to synfig-core [core] [studio]
- Svg_parser: support more outline/stroke styles [core]
- Svg_parser: rename method to follow its meaning: isFirst -> isEqualTo() [core]
- Tab/Shift-Tab support for Widget_Vector [studio]
- Merge PR: SVG importer: fix outlined rectangle and implement missing shapes [core]
- Svg_parser: better method name: initializeGroupLayerNode() [core]
- Svg_parser: fix default fill color: black instead of none [core]
- Merge PR: SVG: fix transform parsing [core]
- Merge PR: Svg_parser: cleanups and some outline-related fixes [core]
- Added support for MLT 7 for CMake build system [core] [studio]
- Merge PR: SVG: Ellipse arcs work now [core]
- Fix various typos [core] [studio]
- Merge PR: Fix Orientation parameter display on Text Tool Options Panel [core] [studio]
- Add margins to TimeTrack to ease handling of initial waypoint and keyframe [studio]
- CMake/Brew removed cairo/pango requirements [core] [studio]
- CellRenderer_TimeTrack now uses TimePlotData too [studio]
- fix Gtk warning "'GTK_IS_WIDGET (widget)' failed" [studio]
- Merge PR: SVG: fix parser for <path> element (except for A commands) [core]
- Layer_Freetype: Added check if HOME environment is set on MacOS [core]
- Merge PR: 'Update' file headers: license notices, \file and other minor changes [ETL] [core] [studio]
- Merge PR: Widget_Keyframe_List: clean up (and make use of TimePlotData) [studio]


Synfig Studio 1.5.2 (64-bit)
- Change log not available for this version


Synfig Studio 1.5.1 (64-bit)
- Change log not available for this version


Synfig Studio 1.5.0 (64-bit)
- Change log not available for this version


Synfig Studio 1.4.2 (64-bit)
- Change log not available for this version


Synfig Studio 1.4.1 (64-bit)
- Change log not available for this version


Synfig Studio 1.4.0 (64-bit)
- Change log not available for this version


Synfig Studio 1.3.16 (64-bit)
- Change log not available for this version


Synfig Studio 1.3.15 (64-bit)
- Change log not available for this version


Synfig Studio 1.3.14 (64-bit)
- Change log not available for this version


Synfig Studio 1.3.13 (64-bit)
- Change log not available for this version


Synfig Studio 1.3.12 (64-bit)
- Change log not available for this version


Synfig Studio 1.3.11 (64-bit)
- Change log not available for this version


Synfig Studio 1.3.10 (64-bit)
- This version introduces just one small, but important enhancement – a button, which allows to quickly enable and disable Draft rendering mode