openrndr / orx
A growing library of assorted data structures, algorithms and utilities for OPENRNDR
AI Architecture Analysis
This repository is indexed by RepoMind. By analyzing openrndr/orx in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.
Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.
Repository Overview (README excerpt)
Crawler viewORX (OPENRNDR EXTRA) A growing library of assorted data structures, algorithms and utilities to complement OPENRNDR. Multiplatform, unless they deal with hardware or depend on binary libraries. Those are JVM-only. Find an auto-generated API documentation page at https://orx.openrndr.org/. Usage To make use of these extensions clone the OPENRNDR template, uncomment the ones you need in its build.gradle.kts file, and reload Gradle. Cloning this repo is optional but useful to run the demos in each ORX folder, to study the source code, and to contribute to existing or new ORX'es. Multiplatform | name | description | | --- | --- | | | 2D and 3D cameras controllable via mouse and keyboard. | | | Color spaces, palettes, histograms, named colors. | | | Shape composition library | | | Toolkit to make composite (layered) images using blend modes and filters. | | | Collection of magical property delegators. For tracking variable change or interpolate towards the value of a variable. | | | Easing functions for smooth animation or non-linear interpolation. | | | ADSR (Attack, Decay, Sustain, Release) envelopes and tools. | | | Tools to evaluate strings containing mathematical expressions. | | | Tools to evaluate strings containing typed mathematical expressions. | | | FCurves are 1 dimensional function curves constructed from 2D bezier functions. They are often used to control a property over time. values don't have any units, but they often represent a duration in seconds. | | | Simple forward and inverse FFT routine | | | Ready-to-use GPU-based visual effects or filters. Most include orx-parameters annotations so they can be easily controlled via orx-gui. | | | Utilities for generating g-code for CNC Machines such as pen plotters, laser engravers, 3D printers, and more. | | | Finds equation inputs that output a minimum value: easy to use gradient descent based minimizer. | | | 2D space partitioning for fast point queries. | | | Draws an image ensuring it fits or covers the specified . | | | CPU and GPU-based implementation for integral images (summed area tables) | | | For querying a data set containing time segments (start time and end time) when we need all entries containing a specific time value. Useful when creating a timeline. | | | Calculates distance or direction fields from an image. GPU accelerated, 2D. Results are provided as an image. | | | Fast search of points closest to the queried point in a data set. 2D, 3D and 4D. | | | Tools for extracting contours from functions | | | Mathematical utilities, including complex numbers, linear ranges, simplex ranges, matrices and radial basis functions (RBF). | | | 3D-mesh generating functions and DSL. | | | Generate random samples on the surface of a mesh ## Demos ### DemoMeshNoise01 | | | Provides the classical "draw-without-clearing-the-screen" functionality. | | | Randomness for every type of person: Perlin, uniform, value, simplex, fractal and many other types of noise. | | | Simple loader and saver for Wavefront .obj 3D mesh files. | | | Collections of color palettes and tools for interacting with them. | | | Provides annotations and tools for turning Kotlin properties into introspectable parameters. Used by to automatically generate user interfaces. | | | Tools for setting up property watcher based pipelines | | | A Quadtree is a spatial partioning tree structure meant to provide fast spatial queries such as nearest points within a range. | | | Shader based fills and strokes, including various types of gradient fills. | | | A library that provides a statement for shaders. | | | Collection of 2D shape generators and modifiers. | | | SVG reader and writer library. | | | Post-processing temporal-blur video effect. CPU intense, not intended for real-time uses. | | | Writing texts on contours. | | | Writing texts with layouts | | | A collection of time-sensitive functions aimed at controlling raw data over-time, such as Envelope and LFO. | | | Simple timer functionality providing , to run code with a given interval and , to run code once after a given delay. | | | **Delaunay** triangulation and **Voronoi** diagrams. | | | Bezier ( ) backed turtle graphics. | | | To create independent views inside one program window. | JVM only | name | description | | --- | --- | | | | | | Helper functions to ease working with the BoofCV computer vision library and its data types. | | | Expose variables to Chataigne and any other applications that can interface with it. The current implementation makes use of the OSC protocol and supports and . | | | Class to help callibrate depth and transformation matrices when using one or more depth cameras. | | | A scene graph based 3d renderer with support for Gltf based assets | | | Monitor files on disk and auto-reload them if they change. | | | An extension that hooks into to commit changed code to Git and provide filenames based on the commit hash. | | | A Gradle plugin that turns a git history and directory into a markdown file. | | | Automatic UI (sliders, buttons, etc.) generated from annotated classes and properties. Uses and . | | | Create animated timelines by specifying properties and times in keyframes, then play it back at any speed (even backwards) automatically interpolating properties. Save, load, use mathematical expressions and callbacks. Powerful and highly reusable. | | | Support for the Kinect V1 RGB and depth cameras. | | | MIDI support for keyboards and controllers. Send and receive note and control change events. Bind inputs to variables. | | | Simplifies working with…