Cinder is a C++ library for programming with aesthetic intent - the sort of development often called creative coding. This includes domains like graphics, audio, video, and computational geometry. Cinder is cross-platform, with official support for macOS, Windows, Linux, iOS, and Windows UWP.
Cinder is production-proven, powerful enough to be the primary tool for professionals, but still suitable for learning and experimentation.
Cinder is released under the 2-Clause BSD License.
Platform-native windowing and event handling
Seamless I/O from flat files, memory, resources and networks
Native macOS and Windows screensavers
Designed around idiomatic C++11 features such as shared_ptr
Load media via HTTP and FTP natively
Full keyboard, mouse (including scroll wheel), window, and file drag and drop
Convenient access to power management, display and network adapter iteration
Consistent multitouch APIs for Windows 7+, iOS and macOS
Built-in object oriented XML & JSON parsing API
Serial port (enabling Arduino applications), OSC and TUIO
Perspective and orthographic cameras, triangle meshes, OBJ loading, geometric primitives
API's for creating and manipulating common 3D primitives.
Multisampled antialiasing, dynamic switching between full-screen & windowed modes, convenience methods for rapid development
GL-based GUI for powerful, convenient manipulation of parameters
Full-featured classes for textures, FBOs, GLSL, VBOs, lights, materials and display lists
Full-featured matrix, vector and quaternion classes via industry-standard GLM library.
Poly-bezier paths, polygons, axis-aligned bounding boxes, B-splines, least-squares B-Spline curve fitting
Colors, random numbers, Perlin noise (up to 4D, with analytical derivatives)
PNG, JPEG, TIFF, BMP, OpenEXR & others. Preservation of premultiplication and high dynamic range information
Full featured vector renderer exports to SVG, PDF, Postscript, EPS, CoreGraphics, GDI and a pixel-based antialiasing rasterizer
High quality image resizing, edge detection, desaturation, adaptive thresholding
Font enumeration, glyph path extraction, Unicode text layout and rasterization, custom fonts via flat files or resources
Full support for floating point HDR pixel processing in image I/O, OpenGL and software
Webcam support via platform native libraries on OS X, iOS and Windows
Decoding WAV, MP3, Ogg Vorbis and others; encoding at 24 and 32-bit precision. Microphone input, multichannel output, and selection of non-default devices
Object-oriented lightweight wrapper for OpenCV 3.0
Generators and effects including band-limited wavetable synthesis, buffer playback, filtering, panning, routing and delay. Precise, sample-accurate parameter interpolation
Frame extraction, native accelerated OpenGL path, audio playback, asynchronous network loading
Low level, high performance cross-platform DSP tools for FFT, high quality samplerate conversion, non-blocking ringbuffer, biquad filters, and vector based math operations
Cinder is developed through Github, and discussion is conducted primarily via its forums. Code contributions, issue reports, and support requests are welcome through these two avenues.
Cinder's original author and current lead architect is Andrew Bell. Significant portions of Cinder were derived from code coauthored with Hai Nguyen, who continues to help steward the project along with Rich Eakin, Paul Houx, and a growing, global community of users.