An addon is code that extends openFrameworks in some way. There are usually two main reasons to make an addon:
You can checkout a copy of the code using git. The name of each addon links to its github repository. You can use the Download Zip button or copy the URL bar, open up a terminal, move to your local openFrameworks addons directory and clone it:
$ cd of_preRelease/addons/ $ git clone https://github.com/obviousjim/ofxSomeAddon
Once you've got the code using either of these methods you should be able to open up the project files in the examples folders of the addon (note that some addons may be not have an example) and build->go to see them work.
Addons can be included in new openFrameworks projects through the Project Generator or you can just copy the example folder into a new apps/ folder and modify it from there.
If the addon doesn't build right away, it may require or be dependent on other addons or libraries. Those should be described by the addon developer in their README file. If there are no project files or the addon is structured in a way that makes openFrameworks show up missing when you open them, please email the addon developer pointing them to this page so they can change the structure to make it easier for people to use.
Being included on the site is no guarantee that the code works or is useful. We couldn't possibly test and run them all ourselves, so it's between you and the developer to sort out issues if they don't work.
The title of each addon links to its repository on github.com. Below each is a description (extracted from github) followed by the creator and information about how long ago the code was updated, the latest version of openFrameworks that was released at the time of the last update (note that it is likely but not guaranteed to work with that version) and the number of github stars. If the addon includes an example and makefile, it is indicated. In addition, all forks of the repository that either have been updated more recently than the original or have more stars than the original are listed. Each contributor has an individual page that lists the addons they have developed. The data on the page is updated once per day.
The best addons make something that was hard easy. They allow you to do complicated things with really little code. If you have just conquered a big library, algorithm, or invented a new process you should consider making it an addon. If you're still wondering, maybe these questions will help:
of_preRelease/ addons/ ofxMyAddon/ src/ ofxMyAddon.h ofxMyAddon.cpp ... libs/ libwhatever/ src/ lib_implementation.h lib_implementation.cpp ... includes/ libwhatever.h ... lib/ osx/ static_libwhatever.a linux/ static_libwhatever.a ... //other platforms example-anExample/ src/ main.cpp ofApp.h ofApp.cpp ... //other source MyAddonExample.xcodeproj ... //other project files for other platforms bin/ data/ necessaryAsset.txt
Everything should go into of_preRelease/addons/. The name of the repository should be ofxMyAddon. The point being when someone clones your git repository into their addons/ folder your examples will run without having to shuffle any files around.
ofxMyAddon/src/ofxMyAddon.h ofxMyAddon/src/ofxMyAddon.cpp ...
ofxMyAddon/example/MyAddonExample.xcodeproj ... //other project files for other platforms ofxMyAddon/example/src/main.cpp ofxMyAddon/example/src/ofApp.h ofxMyAddon/example/src/ofApp.cpp ... ofxMyAddon/example/bin/data
Adding continuous integration testing (aka CI) to your addon allow people to know if the addon is working with the last stable version and with the last master branch of opneFrameworks.
To add CI, you need to:
From there on any commit will test that addon for every supported platform against both master and stable branches of OF.
Once your addon tests are working you can add a badge to your readme files so people using your addon can see the build status.
For travis you can just copy and paste the following markdown, changing "ofxAruco" with the name of your addon and changing the URL with that one of your addon:
which will look like:
For appveyor you can find the badge code at https://ci.appveyor.com/project/your-username/name-of-your-addon/settings/badges
If your addon has another addon as dependency, for example, ofxCV, you need to add this dependency to the .travis.yml file, in the install section
install: - cd ~ - git clone --depth=1 --branch=$OF_BRANCH https://github.com/openframeworks/openFrameworks - cd openFrameworks - scripts/ci/addons/install.sh - git clone --branch=master https://github.com/kylemcdonald/ofxCv addons/ofxCv
You also need to edit the .appveyor with a slightly different syntax
install: - cd .. - git clone --depth=1 --branch=master https://github.com/openframeworks/openFrameworks - git clone --depth=1 --branch=master https://github.com/kylemcdonald/ofxCv openframeworks/addons/ofxCv - call openFrameworks\scripts\ci\addons\install.cmd
You don't have to! Uploading it to github is enough, as long as you have the 'ofx' prefix in your repository name then we'll find it. Feel free to file an issue on github if you want to tell us about it and let us know what category it belongs in.
Include an image file (270x70) in the root of your repository named: ofxaddons_thumbnail.png
We wrote scripts to discover addons on github.com. The scripts look at the repository name and description for things like 'openFrameworks' and 'ofx'. We have manual admin tools to discard the results that aren't openFrameworks related, empty, or blatantly incomplete. The ones we keep are tagged with categories after doing a bit of research about them.