Clean room port of the Processing Framework to C++!
Report Bug
·
Request Feature
Inspired by the need for a friendly and simple way to display graphics in C++ harking back to the halcyon days of Borland C++. The Processing API seemed to be a good fit.
The first step was implementing enough of the API to run the Clock example. Support for other examples was added incrementally from there and now most of them work at comparable performance to their Java versions. With C++ and Java sharing similar syntax we are actually able to run some of the examples unmodified, albeit with a little preprocessor trickery.
To get a local copy up and running follow these simple example steps. Tested on Windows 10 and Ubuntu 24.04 LTS.
Everything needed should be pulled in by cmake with FetchContent.
- Clone the repo
git clone https://github.com/pjfordham/processing_cpp.git
- Build with cmake
cd processing_cpp mkdir release cd release cmake .. cmake --build . --config release
After building just run any of the executables built from the examples, e.g. for Linux just run ./Mandelbrot, or Windows release\Mandelbrot.exe. Below is some sample output.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
To get more of a taste of what to expect see visit, the original framework's examples pages. Most of these examples work identically to their Java and Javascript counterparts.
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE.txt
for more information.