2D vector animation editor written from scratch in modern C++ & Qt

caryoscelus e0c280e388 Development status 1 month ago
data f2985c1a8a Add basic icon 5 months ago
studio eae0e09014 File path editor 3 months ago
thirdparty b515e78ac1 Update Qt-Color-Widgets 4 months ago
.gitignore 6eb865622c git-ignore renders/ 5 months ago
.gitmodules 70fa3690d2 Add Qt-Color-Widgets 9 months ago
BUILDING.md 076b02c315 Rename BUILD.md to BUILDING.md 1 year ago
CMakeLists.txt 15c023683d Version bump 5 months ago
COPYING.gpl3 7f8466a23a GPL3 1 year ago
README.md e0c280e388 Development status 1 month ago
moc_test.h eddb082afc Add script to test whether moc is modern enough 8 months ago
replace_nested_namespaces.sh 4cb97ea4d6 Add scripts to replace nested namespace with old syntax in headers 8 months ago
replace_nested_namespaces_in_headers.sh 4cb97ea4d6 Add scripts to replace nested namespace with old syntax in headers 8 months ago
test_moc.sh eddb082afc Add script to test whether moc is modern enough 8 months ago


RainyNite studio

RainyNite is a free/libre software 2d vector animation tool in development.


Over the course of RN development i've come to conclusion that a large part of it was needlessly reinvented DSL, ineffectively implemented in C++. At this point i'm considering option of porting it to Haskell or possibly another functional platform. In case you have an existing files that you'd like to preserve, please contact me.

New version will be announced here as soon as it is available.

Usage examples


bouncing ball editing screenshot sunrise editing screenshot

Build instructions

These instructions assume unix-like environment.

The build process itself is usual CMake procedure, but there are quite a few dependencies and code is split across repositories.




  • lib2geom (yes, you need my fork at the moment; also you need to build & install dynamic library)
  • boost
  • fmt
  • catch (bundled in repository)
  • rapidjson (bundled as git module)
  • yaml-cpp (bundled as git module)


Runtime renderer dependency:

  • Inkscape - used to render SVG output of RainyNite "renderer"; can be replaced with other command line SVG renderer
  • ffmpeg: optional, for waveform generation

Build process

The easy way is to clone united repository and run update_and_build.sh script.

However, if you're interested in development, you may find it more convenient to setup build directories yourself. Build process is mostly usual CMake routine, except for a few caveats. You can look them up at [BUILDING.md][BUILDING.md] or in build script.


Code license is GPLv3+:

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

Full license text is available in COPYING.gpl3.

Third-party modules may have its own license terms apply.

All original non-code content is licensed under CC-BY-SA 4.0 unless noted otherwise.

pulse.webm soundtrack uses heartbeat sound by Benboncan, which is available at https://freesound.org/people/Benboncan/sounds/108207/.