A Clojure/ClojureScript library for creating interactive drawings and animations using the Processing API.
Quil is a Clojure and ClojureScript library that wraps the Processing API, enabling developers to create interactive drawings, animations, and generative art. It provides a functional, immutable approach to visual programming, making it easy to express complex visual ideas with simple code. The library bridges the gap between the accessible graphics of Processing and the powerful abstractions of Clojure.
Clojure and ClojureScript developers interested in creative coding, generative art, data visualization, or interactive graphics, especially those familiar with or curious about the Processing ecosystem.
Developers choose Quil for its seamless integration of Processing's intuitive graphics API with Clojure's functional programming model, offering a unique blend of accessibility and expressiveness for visual projects. Its support for both Clojure and ClojureScript allows sketches to run on the JVM or in the browser with the same codebase.
Main repo. Quil source code.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides a Clojure-friendly wrapper for the full Processing API, enabling easy access to drawing, animation, and interaction functions without leaving the Clojure ecosystem, as highlighted by its compatibility with Processing 4.3.
Supports both Clojure and ClojureScript, allowing sketches to run on the JVM or in browsers with the same codebase, facilitating flexible deployment for interactive art.
Enables rapid iteration with real-time updates, ideal for generative art and interactive prototyping, as demonstrated by the immediate feedback loop in sketches.
Includes rich examples, such as translations from the 'Generative Art' book and community contributions, providing practical guidance and inspiration for new users.
The README admits Processing jars aren't in Maven repositories, complicating setup for non-Leiningen users and preventing use as a git/sha dependency, adding friction to project initialization.
Key resources like the cheatsheet are noted as 'a little bit out-dated,' forcing users to rely on the wiki and API page, which may lack comprehensive or up-to-date guidance.
With 'a small number of people' in the community per the README, support options are limited, potentially slowing issue resolution and reducing third-party library availability.