# Cinder — Professional Creative Coding in C++ > A community-developed C++ library for professional-quality creative coding, providing a consistent and intuitive API for graphics, audio, video, and networking on macOS, Windows, and Linux. ## Install Save in your project root: # Cinder — Professional Creative Coding in C++ ## Quick Use ```bash # Clone the repository git clone --recursive https://github.com/cinder/Cinder.git cd Cinder # On macOS, open the Xcode project open xcode/fullbuild.xcodeproj # On Linux, build with CMake mkdir build && cd build cmake .. && make -j$(nproc) ``` ## Introduction Cinder is a free, open-source C++ library for creative coding. It provides a clean, well-designed API for 2D/3D graphics, audio, video, and computational geometry. Used in professional installations, data visualizations, and commercial products, Cinder targets developers who need production-quality performance with a polished creative API. ## What Cinder Does - Renders hardware-accelerated 2D and 3D graphics via OpenGL - Captures and processes video, webcam, and Kinect depth data - Plays and analyzes audio with a real-time DSP graph - Provides math primitives for vectors, matrices, splines, and computational geometry - Loads images, fonts, SVGs, 3D models, and JSON with built-in parsers ## Architecture Overview Cinder is a static C++ library compiled alongside your application. It abstracts platform-specific windowing (Cocoa, Win32, X11) behind a uniform App class. The rendering pipeline uses OpenGL with an immediate-mode style API and optional shader support. The library follows RAII patterns and uses smart pointers throughout, producing clean, leak-free creative code. ## Self-Hosting & Configuration - macOS: use the included Xcode project or TinderBox project generator - Windows: Visual Studio project files provided; requires VS 2019+ - Linux: build with CMake; depends on libgl, libx11, and Boost - TinderBox GUI generates new project scaffolding with selected Cinder blocks - Add community Cinder Blocks (plugins) for OSC, TUIO, OpenCV, and more ## Key Features - Production quality: used in commercial installations and professional work - Consistent API: same code runs on macOS, Windows, and Linux - CinderBlocks: modular plugin system for extending functionality - Timeline animation: keyframe-based animation system built in - Hot-reloading assets: live-reload shaders and resources during development ## Comparison with Similar Tools - **openFrameworks** — similar C++ creative toolkit; addon ecosystem is larger - **Processing** — Java-based; easier to start but slower runtime - **nannou** — Rust creative framework; modern GPU backend, smaller community - **SDL** — lower-level multimedia library; no creative coding abstractions - **SFML** — simpler C++ multimedia library; less focus on creative arts ## FAQ **Q: Is Cinder still actively maintained?** A: Development has slowed compared to its peak, but the community maintains it and merges contributions. **Q: Can I use Cinder for commercial projects?** A: Yes. Cinder uses a BSD 2-Clause license, allowing commercial use without restrictions. **Q: What is a CinderBlock?** A: A CinderBlock is a reusable library module (plugin) that integrates with the TinderBox project generator and extends Cinder with features like OpenCV, Kinect, or OSC support. **Q: Does Cinder support Vulkan or Metal?** A: The mainline uses OpenGL. Community forks and branches have explored Vulkan, but it is not in the stable release. ## Sources - https://github.com/cinder/Cinder - https://libcinder.org/ --- Source: https://tokrepo.com/en/workflows/asset-b6215c4a Author: AI Open Source