openFrameworks is a community-developed cross platform toolkit for creative coding in C++.
The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:
openFrameworks is a C++ toolkit for creative coding. If you are new to OF, welcome!
Platform | Master branch | Stable branch -----------------------------|:---------|:--------- Windows MSYS2 32bits | | Windows MSYS2 64bits | | N/A Windows Visual Studio 32bits | | Windows Visual Studio 64bits | | Linux 64 | | Linux armv6l | | Linux armv7l | | Emscripten | | macos | | macos makefiles | | iOS | | tvos | | Android Arm7 | | Android X86 | |
This release of OF comes with several folders:
has some documentation around OF usage, per platform things to consider, etc. You should definitely take a look in there; for example, if you are on OSX, read the osx.md.
are where projects go --
contains a variety of projects that show you how to use OF, and
is where your own projects will go.
contains the libraries that OF uses, including the openframeworks core itself.
are for additional functionality that's not part of the core.
is for DLLs and dylibs that need to be put in each compiled project. The
folder has the templates and small scripts for automating OF per platform.
is a GUI based tool for making new projects - this folder is only there in packaged releases.
One idea that's important is that OF releases are designed to be self-contained. You can put them anywhere on your hard drive, but it's not possible to mix different releases of OF together, so please keep each release (0.8.0, 0.8.1) separate. Projects may generally work from release to release, but this is not guaranteed. Because OF is self-contained, there's extensive use of local file paths (ie, ../../../) throughout OF. It's important to be aware of how directories are structured. A common error is to take a project and move it so that it's a level below or above where it used to be compared to the root of OF. This means that links such as ../../../libs will break.
The openframeworks forum:
is a warm and friendly place. Please ask or answer a question. The most important part of this project is that it's a community, more than just a tool, so please join us! Also, this is free software, and we learn so much about what is hard, what doesn't make sense, what is useful, etc. The most basic questions are acceptable here! Don't worry, just join the conversation. Learning in OF is social, it's hard to do it alone, but together we can get far!
Our GitHub site is active:
if you have bugs or feature requests, consider opening an issue. If you are a developer and want to help, pull requests are warmly welcome. Please read the contributing guide for guidelines:
We also have a developer's mailing list, which is useful for discussing issues around the development and future of OF.
To grab a copy of openFrameworks for your platform, check the download page on the main site.
If you are working with the Git repository, the
branch of the OF repository corresponds to the most recent release, with a few important differences:
If you want to work with the openFrameworks GitHub repository, you need to download the external dependencies and you should use the project generator to create project files for all the code in
. To generate the project files with the project generator enable the 'Advanced Options' in the settings tab, then use 'Update Multiple' to update the projects for the
folder path in the repo.
To set up the project generator submodule within the OF repo, use the command
git submodule init
git submodule update
whilst inside the openFrameworks repo.
For more info on working with the Project Generator, for per-platform readmes, and more information, see the documentation.
openFrameworks uses Semantic Versioning, although strict adherence will only come into effect at version 1.0.0.