What's already in the box
Field4 — hand-written lines of code
Every language across OpenEndedGroup/Field4 and its field-audio-ai submodule, with the box code in its starting points and lessons on top · Nov 2025 – Nov 2026
Documentation — hand-written pages
The .md pages the docs site's contents links to, less the
reference pages generated from KDoc and other generators
Table view — month ends
| As of | Kotlin | JavaScript | HTML | Swift | Python | Rust | C/C++/ObjC | Other (Go, shaders) | Starting points & lessons | Total | Docs lines | Docs pages |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2025-11-30 | 36,849 | 16,089 | 3,555 | 0 | 0 | 0 | 0 | 66 | 0 | 56,559 | 0 | 0 |
| 2025-12-31 | 59,237 | 17,048 | 4,290 | 0 | 595 | 0 | 0 | 66 | 0 | 81,236 | 0 | 0 |
| 2026-01-31 | 76,798 | 22,519 | 8,661 | 0 | 906 | 0 | 0 | 66 | 0 | 108,950 | 3,043 | 6 |
| 2026-02-28 | 111,711 | 22,886 | 10,527 | 0 | 906 | 0 | 0 | 66 | 4 | 146,100 | 3,062 | 6 |
| 2026-03-31 | 153,544 | 19,194 | 12,110 | 0 | 6,173 | 0 | 0 | 608 | 4 | 191,633 | 7,908 | 25 |
| 2026-04-30 | 181,904 | 22,021 | 12,227 | 0 | 6,477 | 0 | 0 | 608 | 4 | 223,241 | 8,738 | 26 |
| 2026-05-31 | 192,624 | 21,836 | 11,651 | 0 | 6,795 | 0 | 0 | 608 | 3,751 | 237,265 | 9,955 | 30 |
| 2026-06-30 | 238,291 | 30,235 | 18,930 | 0 | 7,117 | 0 | 0 | 608 | 3,751 | 298,932 | 12,149 | 35 |
| 2026-07-31 | 375,822 | 39,357 | 23,125 | 5,764 | 20,556 | 0 | 1,121 | 608 | 8,835 | 475,188 | 31,418 | 64 |
| 2026-08-31 | 607,804 | 46,234 | 26,504 | 6,889 | 38,277 | 0 | 5,913 | 608 | 16,797 | 749,026 | 54,411 | 105 |
| 2026-09-30 | 786,377 | 54,999 | 30,761 | 6,889 | 73,731 | 0 | 6,598 | 3,712 | 30,131 | 993,198 | 77,353 | 164 |
| 2026-10-31 | 990,341 | 73,237 | 86,548 | 6,889 | 129,395 | 6,835 | 11,980 | 6,957 | 53,093 | 1,365,275 | 117,204 | 245 |
| 2026-11-01 | 990,812 | 73,291 | 86,560 | 6,889 | 129,486 | 6,835 | 11,980 | 6,946 | 53,092 | 1,365,891 | 117,290 | 245 |
Counted: Kotlin, JavaScript, HTML, Swift, Python, Rust, C/C++/Objective-C, Go and shader source (GLSL, Slang, Metal, HLSL), all lines including blanks and comments. Swift is the visionOS head and its encoder; Rust is the paint engine's Field-side code (native/field-paint/src and the src/field/ it adds to the forked crate); C/C++ is the native helpers under native/. Python is Field4's tools/ plus the field-audio-ai service. Starting points & lessons is the box code saved in documents — the welcome page's starting points, the graphics lessons, the agent and docs demo documents — with identical copies counted once. Excluded as vendored (317,073 lines today): the Monaco editor, the three.js editor and its examples/ trees, A-Frame, super-three, CodeMirror and its modes, acorn/tern, tess2, every .min.js, the forked claude-paint crate, FFmpeg's NVENC headers and Steam Audio's C API. Excluded as generated (22,179 lines): src/generatedLinalg/, the RectSL/StackSL gallery wrappers, and saved templates/ sheets. Docs are the contents pages' Markdown, skipping any page whose first line says a generator wrote it. Method: one point per day, taken from the largest tree committed that day, so the line follows the leading edge where branches ran in parallel. The submodule is counted through the gitlink Field4 pins, so it appears the day Field4 adopted it. The visionOS app's original commit root is left out (its Swift is counted from the main line). Kotlin is ~80% of the total, so the small bands are only a few pixels tall — read their values from the legend, the tooltip or the table. Generated by tools/loc_chart.py.
Explore Field's JVM codebase by package. Follow a branch to its declarations and the documentation that sits next to them in the source. Where a package spans several reference pages, each page is linked separately.
ai
- agent
- compat
- completion
- conversation
- diagnostics
- inference
- knowledge
- learning
- models
- retrieval — Data · Machine learning
- tools — Machine learning · Workspace
animation
app
- commands
- diagnostics
- notifications
- protocol
- server — Graphics · Internal · Workspace
- settings
audio
data
- collections
- formats
- graph — Data · Graphics · Visualization
- query
- sorting
- table
document
examples
geometry
- curves
- euclid
- mesh — Graphics · Math · Simulation
- tetgen — Graphics · Simulation
- network
- path — Graphics · Math
- polytope
- solid
- manifold — Graphics · Internal
- solidcraft
- spatial — Graphics · Machine learning · Math
- topology
- vectorize
graphics
io
lang
math
media
runtime
simulation
- agents — ALife · Simulation
- automata — ALife · Data
- creatures
- flow
- kratos
- particles — Machine learning · Simulation
- petri — Audio · Simulation · Visualization
- physics
tools
ui
- controls — Visualization · Workspace
- film
- layout
- notation
- output — Graphics · Internal · Output · Visualization · Workspace
- slides
- visualization — Graphics · Visualization · Workspace
Reference pages
35834 public symbols across 1630 source files, 21051 of them (58%) carrying a KDoc summary. Pages are grouped by the source's @file:CompletionCategory where present, with package-based categories for unannotated files. Public visibility describes Kotlin access; it does not necessarily mean an API intended for box code.
The "documented" column counts declarations carrying a KDoc summary. Where a summary column below is blank, the declaration has none yet.
| Category | Files | Symbols | Documented | Covers |
|---|---|---|---|---|
| Examples | 221 | 699 | 310 (44%) | Runnable examples, galleries and verification programs. |
| Internal | 20 | 156 | 55 (35%) | Implementation details explicitly marked Internal by their source. |
| Lighting | 8 | 206 | 206 (100%) | Light sources, fixtures and control protocols for working with physical and rendered lighting. |
| Networking | 16 | 366 | 213 (58%) | OSC messages, discovery and query interfaces for connecting Field to other applications and devices. |
| Video | 14 | 192 | 192 (100%) | Video sources, shared GPU frames and live diffusion sessions, with controls for motion and temporal output. |
| Math | 47 | 2162 | 1623 (75%) | Numerics: signal processing in both domains, estimation and fitting, interpolation, statistics, randomness and units. |
| Data | 26 | 1061 | 502 (47%) | Structures and processes over data rather than over pixels: clustering and nearest-neighbour search, generative and constraint systems, graph dynamics, and the I/O helpers (files, JSON, subprocesses, OSC-adjacent devices) that get data into a box. |
| Graphics | 330 | 8046 | 5296 (65%) | Everything that ends up as an FLine, a colour or a shader: drawing helpers, contouring, geometry, colour spaces, keyframing and the small shading languages' host side. |
| Renderers | 46 | 797 | 427 (53%) | Turning a scene into pixels on a Vulkan device. |
| Polytopes | 17 | 586 | 431 (73%) | Polyhedra as topology first and coordinates second. |
| Solvers | 7 | 766 | 514 (67%) | Nonlinear least squares, aimed at geometry. |
| Simulation | 48 | 1472 | 832 (56%) | Making a shape behave. |
| Imaging | 55 | 885 | 450 (50%) | Rasters and computer vision: convolution and the filter family, gradients and edges, corners, blobs and morphology, multiscale pyramids, warps and optical flow. |
| ALife | 17 | 938 | 851 (90%) | Spatial artificial life: grid cellular automata (life-like, cyclic and Wolfram's elementary rules), continuous systems (reaction-diffusion, Turing patterns, Lenia), agent populations (boids, Physarum, diffusion-limited aggregation) and structural growth (L-systems, space colonization), plus the measurement layer every one of them makes its claims through. |
| Function | 16 | 611 | 405 (66%) | The function algebra — Field's first-class, evolvable, graph-rewritable notion of a function. |
| Search | 10 | 464 | 464 (100%) | Optimisation over a space you can only sample. |
| Visualization | 62 | 1728 | 1235 (71%) | Turning a value into something you can look at, without leaving the box. |
| Synthesis | 43 | 1534 | 763 (49%) | Field's own signal graph — the part of the audio stack that makes samples rather than arranging them. |
| Patterns | 40 | 1317 | 721 (54%) | Musical time, as a value. |
| Audio | 80 | 2122 | 1039 (48%) | Sound that arrives from, or leaves for, somewhere other than Field's own signal graph: analysis products written by an offline tool, the network protocols that carry control data, the Dirt sample library on disk, an Ableton Live set read off the filesystem, and Sonic Pi driven as an owned child process with no window of its own. |
| Audio AI | 22 | 586 | 586 (100%) | The client half of Field Audio: a separate HTTP/WebSocket service that runs generative and analysis models over audio, and the typed vocabulary a box talks to it in. |
| Languages | 123 | 3103 | 1527 (49%) | Field's small languages, from the host side. |
| Workspace | 237 | 3209 | 1290 (40%) | The box's own surroundings: properties, persistence, and the handful of names every box already has in scope. |
| Machine learning | 112 | 2616 | 1044 (39%) | Models small enough to train inside a box, in plain Kotlin, while you watch. |
| Animation | 10 | 178 | 41 (23%) | |
| Execution | 2 | 9 | 9 (100%) | |
| Output | 1 | 25 | 25 (100%) |
Every file
Every Kotlin file under src/jvmMain/kotlin is listed, including files without public declarations. Dimmed entries are identifiable internal plumbing or build/test harnesses; they remain linked and searchable. Low-level APIs that a box can use, such as renderers and textures, retain full emphasis.
| File | Category | Symbols | Documented | What it is | Used in |
|---|---|---|---|---|---|
| src/ |
Graphics | 10 | 10 | Half-precision (binary16) conversion and packing for data headed to GPU buffers. | |
| src/ |
Workspace · internal | 10 | 9 | The HTTP bridge from Field's Kotlin completion to the out-of-process K2 Analysis-API completion sidecar. | |
| src/ |
Audio | 34 | 0 | Ableton Link from inside Field: a tempo, beat and phase shared with every Link peer on the network, and audio published to and taken from them. | |
| src/ |
Audio | 190 | 1 | An Ableton Live set read into Field: tracks, clips, tempo, automation and sample analysis. | |
| src/ |
Audio | 26 | 0 | An AbletonSet drawn as a timeline: a row of clip rectangles per track, an automation curve under it per envelope, at a fixed number of pixels per beat. |
|
| src/ |
Audio · internal | 3 | 1 | Smoke test for reading Ableton Live sets: clips, automation envelopes, gzipped .als files, sample lookup, track volume and pitch analysis, run against generated fixtures. |
|
| src/ |
Graphics | 44 | 2 | Vulkan ray-tracing acceleration structures: AccelerationStructure builds a bottom-level structure from triangles or AABBs, or a top-level one from RayTracingInstances, on the Renderer found from context. |
Ray Tracing Examples, Compute your ray-traced geometry |
| src/ |
Internal · internal | 27 | 17 | Typed messages between boxes: a box registers a handler with onMessage, and other code delivers to it with send (fire-and-forget) or sendAndAwait (suspend for a reply). |
A Terminal in a Box |
| src/ |
Graphics | 2 | 1 | ||
| src/ |
Workspace · internal | 1 | 0 | ||
| src/ |
Workspace · internal | 2 | 1 | Checks that each committed, authored document agrees with the loose source files beside it: every document under dev_docs/agents/demos/, and every document directly under AUTHORED_ROOTS that carries inline copies. |
|
| src/ |
Machine learning | 43 | 18 | The agent eval corpus: tasks mined from the operation transcripts under dev_docs/agents/transcripts/ rather than written by hand. |
|
| src/ |
Machine learning | 42 | 19 | agentExtension { } lets a box extend its document's AI agent, beyond the single tool aiTool { } gives it. |
|
| src/ |
Workspace · internal | 2 | 0 | ||
| src/ |
Machine learning | 22 | 11 | Lessons AI4 distils from its own eval runs, kept in a reviewable Markdown file and added to the instructions of every turn that has the graph tools. | |
| src/ |
Workspace · internal | 0 | 0 | ||
| src/ |
Machine learning | 85 | 39 | Headless agent tasks: a goal, a document and a set of checks, run through AI4's own turn and judged from what the document's boxes did. | |
| src/ |
Machine learning | 7 | 3 | Writes an agent task into a box's AI4 chat transcript, so a finished task can be read and continued in that box's chat panel. | |
| src/ |
Examples | 2 | 1 | ||
| src/ |
Machine learning | 13 | 13 | The registration point through which code outside the AI core, including a document's own boxes, adds tools to the AI4 agents. | |
| src/ |
Machine learning | 0 | 0 | ||
| src/ |
Workspace · internal | 2 | 1 | Fails the build when public/docs/agent_transcripts.md stops being a true index of dev_docs/agents/transcripts/. |
|
| src/ |
Workspace · internal | 6 | 2 | Keeps OperationTranscript and demo boxes visible and compact, while allowing larger boards that have a recorded reason. | |
| src/ |
Examples | 2 | 1 | ||
| src/ |
Workspace · internal | 9 | 1 | Creates, lists, merges and deletes git worktrees that agents work in, one branch per proposal. | |
| src/ |
Machine learning | 64 | 1 | Re-exports the AI4 assistant's public types and helpers under one package, afield.ai.compat, so code that imports from this one package keeps compiling. |
|
| src/ |
Machine learning | 65 | 11 | A local cache that maps file contents to OpenAI file IDs, so the same bytes are uploaded once per API key. | |
| src/ |
Machine learning | 0 | 0 | ||
| src/ |
Machine learning | 0 | 0 | The AI4 tool surface as an external agent sees it: the same registry the chat panel uses, wired to one attached document, with every target named outright. | |
| src/ |
Machine learning | 9 | 7 | Drafts documentation, with a language model, for a completion item whose declaration has no KDoc. | |
| src/ |
Machine learning | 8 | 0 | A command-line tool that uploads files to OpenAI through the content-hash cache and chats over them. | |
| src/ |
Machine learning | 5 | 0 | Language-model autocomplete for shader properties (fragment, vertex, compute and the other shader stages). |
|
| src/ |
Machine learning | 24 | 3 | Installs Field's AI assistant: the websocket handlers behind the box and document chat, and the code tools the model calls. | |
| src/ |
Machine learning | 5 | 0 | Language-model autocomplete for box Kotlin code. | |
| src/ |
Machine learning | 0 | 0 | ||
| src/ |
Examples · internal | 2 | 0 | ||
| src/ |
Machine learning | 0 | 0 | ||
| src/ |
Machine learning | 0 | 0 | The five AI4 tools that need the running Field rather than the saved document: reload a box's shaders, capture the render window, list a box's Kotlin context variables, query the code-use index, and search workspace symbols. | |
| src/ |
Workspace | 17 | 1 | The ai("...") macro, which asks a language model to write the body of the function it is called in and caches the result in the box's attic. |
|
| src/ |
Machine learning | 12 | 4 | Where an AI4 chat transcript is stored: on the box for a box's chat, and in a file beside the document for the document chat. | |
| src/ |
Machine learning | 0 | 0 | The fenced blocks AI4 chat draws as pictures rather than printing as code, read on the JVM from the same catalog the browser renderers read. | |
| src/ |
Machine learning | 0 | 0 | The running transcript of one AI4 chat turn, assembled in the order things happened. | |
| src/ |
Machine learning | 0 | 0 | ||
| src/ |
Machine learning | 0 | 0 | The on-disk accounting record for every AI4 model request: which endpoint answered, how many tokens it billed, how long it took and how it ended, with none of the prompt and none of the reply. | |
| src/ |
Machine learning | 27 | 17 | A box's AI4 conversation recorded as a tree of turns beside its markdown transcript, so a turn can be rewound to or edited and re-sent without losing the abandoned branch. | |
| src/ |
Machine learning | 8 | 8 | Housekeeping for the box states AI4 conversations save under <document>/ai4_blobs/state/. |
|
| src/ |
Machine learning | 0 | 0 | Which AI4 log lines become a toast on the canvas, and which stay in the log. | |
| src/ |
Machine learning | 0 | 0 | What a chat turn does when a tool throws. | |
| src/ |
Machine learning | 13 | 1 | A command-line task in which a model reads Field's recent AI tool I/O logs and edits the AI4 tool descriptions and prompts that caused the trouble it finds. | |
| src/ |
Machine learning | 5 | 0 | The runner behind the AI tool-use improvement task, which summarises the AI4 tool input/output logs and starts the Gradle task that proposes fixes, optionally in a generated worktree. | |
| src/ |
Machine learning | 0 | 0 | Telling a stopped AI4 turn apart from one that failed. | |
| src/ |
Machine learning | 9 | 7 | The queue for messages a person sends to a box's chat while its AI turn is still running. | |
| src/ |
Machine learning | 5 | 5 | Which boxes an abandoned turn created can be deleted without taking anyone's later work with them. | |
| src/ |
ALife | 51 | 50 | Spatial artificial life for the Field stdlib — the continuous / grid / agent half of ALife, the counterpart to the graph-rewriting half already here (growing.kt, dynamic_graph_systems.kt, interactionnets.kt, booleannetworks.kt) and to the constraint-based generator in wfc.kt. |
Spatial artificial life |
| src/ |
ALife | 59 | 56 | Agent-based spatial ALife: boids flocking, a Physarum (slime-mould) deposit–sense–move population over a trail Img, and diffusion-limited aggregation. |
Spatial artificial life |
| src/ |
ALife | 5 | 5 | One shared way to animate the alife*.kt family — because every system in it is a time evolution, and a montage of frozen generations is the one view that hides the thing they are about. |
Spatial artificial life |
| src/ |
ALife | 21 | 21 | The Biham–Middleton–Levine traffic model on the GPU: a torus of cells, each empty or holding one car, advanced by a single full-screen fragment pass into a ping-pong texture. | |
| src/ |
ALife | 86 | 81 | Discrete cellular automata: life-like and outer-totalistic rules on a 2-D lattice, cyclic multi-state CA, Wolfram's elementary 1-D rules as a space-time raster, and a 3-D life-like CA that marches out to a TriMesh. |
Spatial artificial life, Three-dimensional Life, counted and traced |
| src/ |
ALife | 86 | 79 | Continuous spatial ALife: reaction–diffusion (Gray–Scott / Turing) and Lenia, all shaped as Img -> Img steps so they compose with the imaging family. |
Spatial artificial life |
| src/ |
ALife | 35 | 35 | Diffusion-limited aggregation on the GPU: a buffer of random walkers stepped, stuck and drawn by a single vertex shader, with the growing cluster held in a texture rather than in any Kotlin data structure. | |
| src/ |
ALife | 63 | 37 | The search half of this family: rule sets as genomes, the measurements in alife.kt as fitness, and PopulationSearch as the engine that connects them. |
Spatial artificial life, Agent transcript gallery, Braitenberg vehicles with memory |
| src/ |
ALife | 3 | 3 | Inline ToHTML views for the alife*.kt family — what a box draws when you evaluate an IntGrid or a GrayScottState, with nothing to set up. |
|
| src/ |
ALife | 55 | 55 | Fire spreading through a forest on the GPU: a fixed scatter of trees, fire that you light by drawing into a texture, and four kinds of fire, one per colour channel, that compete for the same trees. | |
| src/ |
ALife | 63 | 63 | A two-dimensional fluid on the GPU by the lattice Boltzmann method, with a control texture you draw obstacles, forces and dye sources into, and a dye field that the flow carries. | Field 4 Graphics |
| src/ |
ALife | 62 | 59 | Structural spatial ALife: a bracketed, parametric, optionally stochastic L-system with a turtle that emits FLines, plus space-colonization branching. |
Spatial artificial life |
| src/ |
ALife | 30 | 27 | Jones' Physarum on the GPU, built on the TrailField stigmergy field in alife_trail.kt. |
|
| src/ |
ALife | 161 | 145 | Per-agent scripted behaviour for ALife: a coroutine each agent runs as its own little program, on a fixed-step virtual clock, composing into weighted steering drives. | |
| src/ |
ALife | 30 | 27 | A stigmergy field on the GPU: a four-channel trail texture that agents write into and read from, and that diffuses, decays and drifts on its own between their visits. | |
| src/ |
ALife | 69 | 65 | A larger Braitenberg vehicle genome, and an equal-budget comparison of the searches that look for one. | Braitenberg vehicles with memory |
| src/ |
Simulation | 93 | 86 | Braitenberg vehicles whose neurons have internal state: two light sensors, two motor neurons, two wheels, and between them a small dynamical system rather than a wire. | Braitenberg vehicles with memory, Agent transcript gallery |
| src/ |
ALife | 59 | 43 | Walls for alife_script.kt: obstacles, swept circle collision, and radius-aware routing around them. |
Spatial artificial life |
| src/ |
Examples | 2 | 1 | ||
| src/ |
Examples | 2 | 1 | ||
| src/ |
Examples | 2 | 1 | ||
| src/ |
Examples | 2 | 1 | ||
| src/ |
Examples | 2 | 1 | ||
| src/ |
Visualization | 55 | 1 | Geometric tidying of box frames on the canvas: aligning, snapping and connection-guided routing over a list of Rects, plus the palette actions that apply them to a selection. |
|
| src/ |
Audio | 57 | 36 | The four Ambisonics effects, each with its per-block parameter view: AmbisonicsEncodeEffect places a mono source in an Ambisonic field, AmbisonicsRotationEffect turns the field with the listener, and AmbisonicsDecodeEffect and AmbisonicsBinauralEffect render it to speakers or headphones. |
|
| src/ |
Audio AI | 15 | 15 | Typed constructors for model-free musical analysis and learned speech representations. | Multi-instrument transcription with MuScriptor, Visualizers, Displays, and Little Instruments, Beat and pitch analysis |
| src/ |
Audio AI | 4 | 4 | Analysis viewers and dashboards for beat, pitch, and note results, with zoom, pan, and a shared time cursor. | Visualizers, Displays, and Little Instruments, Multi-instrument transcription with MuScriptor |
| src/ |
Machine learning | 5 | 2 | The Anthropic (Claude) implementation of LlmBridge, running Field's agent loop over the Messages API. |
|
| src/ |
Machine learning | 23 | 7 | Credential + client construction for the Anthropic (Claude) provider. | |
| src/ |
Solvers | 186 | 186 | A named, typed DSL over the raw constraint vocabulary in CeresGeometry.kt, plus the interactive machinery for solving it while a user drags. |
|
| src/ |
Graphics | 2 | 1 | ||
| src/ |
Math | 4 | 3 | Arena-vector versions of a few afield.math.linalg geometry tests, for use inside frameScratch. |
|
| src/ |
Workspace · internal | 3 | 2 | Command-line option parsing for the server: option reads a typed --name value pair and flag tests for a bare --name. |
|
| src/ |
Lighting | 33 | 33 | Art-Net 4 packet encoding and decoding — the wire format only, no sockets. | |
| src/ |
Workspace · internal | 1 | 0 | ||
| src/ |
Machine learning | 5 | 2 | Asking the person a question mid-task: AskUserQuestionRequest ends the turn with a TurnSuspension carrying the question. |
|
| src/ |
Workspace · internal | 1 | 1 | ||
| src/ |
Languages | 16 | 1 | Source-to-source rewriting of a JavaScript box, over Nashorn's parse tree. | |
| src/ |
Execution | 8 | 8 | A future-backed operation whose callbacks stop firing once the box run that started it ends. | |
| src/ |
Graphics | 5 | 0 | An image plus image view sized and formatted to be used as a framebuffer attachment. | |
| src/ |
Machine learning | 0 | 0 | Reading a long attachment one window at a time, under the guards every attachment shares. | |
| src/ |
Polytopes | 7 | 7 | Untyped per-element data, carried alongside the topology and propagated through transforms. | |
| src/ |
Visualization | 10 | 10 | The HTML an audience slide is written in: kotlinx.html's builders, with scoped Markdown, stylesheets and two picture layouts added. | |
| src/ |
Audio AI | 1 | 1 | The one-line bridge from a Field Audio AssetRepresentation to Field's general-purpose waveform player. |
|
| src/ |
Audio | 34 | 32 | Audio buffers and the settings every Steam Audio effect is created against. | |
| src/ |
Graphics | 15 | 15 | Decodes an audio stream with FFmpeg into signed 16-bit PCM AudioFrames for AudioPlayer. |
|
| src/ |
Audio | 5 | 5 | The base class every Steam Audio effect extends: AudioEffect resets state, reports and flushes the reverb tail, and AudioEffect.drainTail runs that flush loop for a source that has stopped. |
|
| src/ |
Graphics | 15 | 15 | Streams PCM audio through OpenAL by queuing a fixed ring of buffers, and reports the playback position that AudioClock uses to keep video in sync. |
|
| src/ |
Synthesis | 1 | 1 | The step between a box whose last expression is a patch and a patch you can hear. | |
| src/ |
Examples | 1 | 0 | AudioVideoExample demonstrates synchronized audio/video playback with clock integration. | |
| src/ |
Visualization | 28 | 28 | The recorded-audio waveform player: a zoomable, seekable view of a recording, as one self-contained HTML fragment for a box output. | Visualizers, Displays, and Little Instruments, Multi-instrument transcription with MuScriptor, Render Field music, then analyse it |
| src/ |
Math | 90 | 87 | Reverse-mode automatic differentiation over Double scalars — exact gradients for ordinary Kotlin arithmetic, in one pass, whatever the expression's size. |
Spatial artificial life, Functions to FLine examples (Field graphics), Frames and the animation loop |
| src/ |
Function | 16 | 16 | Differentiating the Fn graph itself — the bridge from autodiff.kt's scalar tape to the graphs Functions builds. |
Differentiating Functions |
| src/ |
Function | 50 | 50 | One declaration of each Fn op's pointwise semantics, walked by two evaluators — so Fn.eval and the reverse-mode gradient cannot compute different functions. |
|
| src/ |
Math | 68 | 67 | Forward-mode automatic differentiation to second order — the other half of autodiff.kt. |
Differentiating Functions |
| src/ |
Math | 78 | 72 | Differentiable geometry: tracked vectors, planar inverse kinematics on an FLine chain, and a differentiable circle packing — the part of the AD layer whose results are drawable. |
Differentiating Functions |
| src/ |
Math | 50 | 47 | Gradient-descent optimizers that consume the exact gradients from autodiff.kt — sgd, adam and lbfgs, behind one minimize front door. |
Differentiating Functions |
| src/ |
Graphics | 4 | 3 | Releases Vulkan handles when the Kotlin object that owned them is garbage collected. | |
| src/ |
Audio | 34 | 34 | Offline bakes over a ProbeBatch: the pathing visibility graph and reflection data. |
|
| src/ |
Audio | 10 | 10 | Band energy from audio that is already playing: a bank of band-pass filters, and the RMS of what each one passes. | A pattern that moves particles |
| src/ |
Examples · internal | 2 | 1 | ||
| src/ |
Examples · internal | 2 | 1 | ||
| src/ |
Patterns | 8 | 7 | Quantised launching: .onBeat(…) holds any launchable value until the next boundary of a PatClock's grid, and waitForBeat(…) is the same wait spelled as a suspend call for code inside frames { } or loop { }. |
|
| src/ |
Audio | 16 | 11 | HRTF-based binaural rendering of a mono source: BinauralEffect and the native-memory BinauralEffectParams it reads each block. |
|
| src/ |
Examples | 1 | 0 | ||
| src/ |
Internal · internal | 25 | 1 | Binds a property or one-argument function to a source of values with the < operator: ::speed < { mouseX } or ::speed < sequenceOf(1.0, 2.0, 3.0). |
|
| src/ |
Graphics | 21 | 18 | Estimates where the two eyes converge from a pair of per-eye gaze rays. | |
| src/ |
Imaging | 4 | 1 | A browser-frame receiver that uploads CPU pixels to the GPU, as a fallback where Chromium's shared-texture export delivers an empty frame. | |
| src/ |
Simulation | 92 | 71 | Boids as a declarative spec: kinds of boid, each with a count, speed limits, a field of view, a look and a list of Reynolds steering rules, all stepped together on the GPU over a neighbour grid and drawn with tapered trails. | |
| src/ |
Examples | 2 | 1 | ||
| src/ |
Examples | 8 | 1 | ||
| src/ |
Examples · internal | 2 | 0 | ||
| src/ |
Data | 32 | 25 | Synchronous Boolean networks and the pictures you draw of them. | Boolean networks to FLine examples, Boolean network music examples |
| src/ |
Patterns | 36 | 21 | Gives a BooleanNetwork's states a duration, which is all it takes to read one as music. |
Boolean network music examples |
| src/ |
Audio | 15 | 13 | The clips on boolean_network_music_examples.md: each figure's note stream played through the pinned Tidal Dirt-Samples. |
|
| src/ |
Examples · internal | 3 | 0 | ||
| src/ |
Machine learning | 2 | 2 | ||
| src/ |
Machine learning | 58 | 35 | A box contributes tools to its document's AI agents with aiTool(name) { }, an idempotent Kotlin DSL that serves both the in-app chat and external MCP agents. |
|
| src/ |
Examples · internal | 2 | 1 | ||
| src/ |
Workspace | 3 | 3 | Which boxes are executing their body right now, as distinct from a frame loop or callback the body started: BoxBodyRun counts each box's nested body runs, and a source-backed block reads it to refuse re-entering its own box. |
|
| src/ |
Examples | 2 | 1 | ||
| src/ |
Examples | 5 | 3 | ||
| src/ |
Workspace | 80 | 23 | The Box model: a box's properties, its children/parents graph, and the property sets that decide what is saved and what is sent to the browser. |
AI4's built-in tools, Keyboard shortcuts, Keyframes: capturing, persisting and replaying live state |
| src/ |
Examples | 2 | 1 | ||
| src/ |
Workspace · internal | 14 | 10 | Which of a box's imports it needs. | |
| src/ |
Workspace | 12 | 12 | Getting out of box code that will not return: a stall watchdog, and the bytecode rewriting that gives the interrupt somewhere to land. | |
| src/ |
Visualization | 3 | 3 | "Lay out selection" — arranging boxes on the canvas the way a diagram tool would, using the layout engines in native/field-d2-layout. |
|
| src/ |
Machine learning | 21 | 9 | Pictures of a box's output area for the agent, taken from a headless Playwright page on the box's document, with simple statistics about what the picture contains. | |
| src/ |
Workspace · internal | 6 | 3 | Catches the figure that is written and then immediately erased. | |
| src/ |
Workspace | 13 | 6 | A bounded server-side record of each box's printed text, errors, display(...) channels and execution verdicts, readable without a websocket. |
|
| src/ |
Workspace | 2 | 2 | The box surface for study builds: Box.studyBuilds attaches a named StudyBuilds runner to a box, and Box.showStudyBuilds shows its stage buttons, progress and diagnostics in an output channel. |
Let AI4 Wait for Long Builds, Studies |
| src/ |
Solvers | 61 | 61 | Brief is a text notation for weighted geometric constraints: points, lines, planes and panels, and the relations they should satisfy, each with a strength. | |
| src/ |
Solvers | 5 | 5 | The Brief editor extension's JavaScript, read from the same resource the browser loads. | |
| src/ |
Examples | 3 | 1 | ||
| src/ |
Solvers | 43 | 43 | Resolution and lowering: a BriefSyntax becomes a BriefProgram, and a BriefProgram becomes an afield.math.optimization.ceres.GeometryModel solved through the real Ceres backend. |
|
| src/ |
Examples | 1 | 1 | ||
| src/ |
Workspace · internal | 44 | 9 | The object inspector behind /browse: a live, clickable tree of any value, reached from a box with Inspector.linkFor. |
|
| src/ |
Graphics | 10 | 10 | One-to-one matching between two equally sized 2D point clouds, at a million points a side, using BSP-OT: every source point gets exactly one target and every target is used exactly once, with the total squared travel distance kept small. | A Drawn Morph, Heard |
| src/ |
Synthesis | 22 | 22 | Bulk float-array arithmetic for the synthesis graph, written against the Java Vector API. | |
| src/ |
Workspace · internal | 0 | 0 | The server side of button(...): the button-update websocket command, which carries one press or release from the browser and runs the box's callback with it. |
|
| src/ |
Data | 22 | 15 | Motion capture in BVH format: a joint hierarchy and one line of channel values per frame. | |
| src/ |
Workspace | 3 | 3 | cached, which hands a box back the value it made on its last run for the same keys, and closes the old value when the keys change. |
|
| src/ |
Audio | 17 | 15 | Callback interfaces for Steam Audio: PathingVisualizationCallback and ProgressCallback for watching pathing and baking, and CustomSceneCallbacks with HitResult for supplying your own ray tracer in place of Steam Audio's scene. |
|
| src/ |
Visualization | 8 | 0 | Per-box callback tables that run when a box's frame, viewport, name or children change. | |
| src/ |
Graphics | 24 | 23 | The Vulkan renderer's look-at camera: a position, a target and an up vector, with a SuperProjection for its projection. |
|
| src/ |
Graphics | 14 | 14 | Rigid camera poses for blending between viewpoints: CameraPose stores a Camera's placement as a dual quaternion plus a focus distance. |
Keyframes: capturing, persisting and replaying live state |
| src/ |
Audio AI | 1 | 1 | The candidate board: the instrument for choosing between the alternatives a generation produced. | |
| src/ |
Polytopes | 45 | 43 | Canonicalization: the step that turns combinatorially-correct-but-lumpy Conway output into the solid you were picturing. | Polytopes: topology first, coordinates later, A polytope, canonicalised, and sliced into layers, Talking to the StackSL in your shader |
| src/ |
Visualization | 13 | 11 | Filming Field: canvasFlight flies the canvas through a document's bookmarks, live or to an MP4. |
Filming the canvas |
| src/ |
Workspace · internal | 3 | 3 | Filming a canvas flight to MP4, one frame at a time. | |
| src/ |
Graphics | 14 | 14 | A closed, rigged tube: the fixture for measuring what a twist costs a limb in volume. | |
| src/ |
Graphics | 0 | 0 | The row order a pixel source hands to an encoder, and the paths that are held to it. | |
| src/ |
Patterns | 14 | 12 | A cellular automaton as a rhythm, by way of the pattern language's own inverse parser. | |
| src/ |
Examples | 1 | 0 | ||
| src/ |
Examples | 1 | 0 | ||
| src/ |
Examples | 1 | 0 | ||
| src/ |
Examples | 1 | 1 | ||
| src/ |
Solvers | 77 | 72 | Residuals written in Kotlin, compiled to a little register machine, and differentiated exactly by Ceres. | |
| src/ |
Examples | 1 | 0 | ||
| src/ |
Examples | 1 | 0 | ||
| src/ |
Examples | 1 | 0 | ||
| src/ |
Solvers | 351 | 104 | The constraint vocabulary for Field's Ceres point solver, and the encoding that ships it to a backend. | |
| src/ |
Examples | 1 | 0 | ||
| src/ |
Examples | 1 | 0 | ||
| src/ |
Examples | 1 | 0 | ||
| src/ |
Examples | 1 | 0 | ||
| src/ |
Polytopes | 20 | 15 | Optional bridge: run a RelaxationPlan on the native Ceres solver instead of the built-in one. |
Polytopes: topology first, coordinates later, A polytope, canonicalised, and sliced into layers |
| src/ |
Examples | 1 | 0 | ||
| src/ |
Examples | 1 | 1 | ||
| src/ |
Examples | 1 | 1 | ||
| src/ |
Visualization | 70 | 70 | A grid of glyphs that box code writes into, cell by cell, shown in an output panel: generative text art in the spirit of 10 PRINT, ported from the madp charGrid demo. | |
| src/ |
Examples | 2 | 1 | ||
| src/ |
Visualization | 94 | 86 | Plots — the structure, the scales, and the one renderer for them. | Charts as FLines, Filling a solid: tetrahedral meshing with TetGen |
| src/ |
Workspace · internal | 1 | 1 | The server side of the Discussion thread that a slideshow step or a box can show: two RPC handlers that carry messages between Field's clients and an outside chat service. | |
| src/ |
Machine learning | 57 | 20 | The chat archive: a saved AI4 conversation, read from disk as a tree | |
| src/ |
Machine learning | 27 | 2 | Chat archive statistics from the command line | |
| src/ |
Machine learning | 4 | 4 | The lens viewer | |
| src/ |
Machine learning | 1 | 1 | The lens viewer's two read routes (ChatLensViewer). |
|
| src/ |
Machine learning | 14 | 9 | Chat-log tools: AI4 agents that read chats and write lenses | |
| src/ |
Machine learning | 12 | 10 | What an agent reads of a chat | |
| src/ |
Machine learning | 35 | 30 | CLIP, as a source of directions in meaning. | Depth and CLIP: neural vision in a box |
| src/ |
Machine learning · internal | 2 | 1 | ||
| src/ |
Languages | 54 | 28 | Clojure as a Field main language: a box whose source is Clojure, evaluated by the real Clojure runtime on this JVM. | |
| src/ |
Graphics | 2 | 1 | ||
| src/ |
Simulation | 34 | 34 | A rectangular cloth patch on a SimdVerlet simulation. |
Frames and the animation loop, Physics: particles, constraints and cloth |
| src/ |
Examples | 10 | 5 | ||
| src/ |
Graphics | 12 | 5 | Builds NVIDIA cluster acceleration structures from compute-shader output: ClusterGeometry validates TriangleCluster records, builds cluster-level acceleration structures and one cluster BLAS for ray tracing. |
Compute your ray-traced geometry |
| src/ |
Graphics | 24 | 1 | A computed-terrain demo of ClusterGeometry: a compute shader writes every patch's vertices, indices and cluster descriptions, and a ray-tracing pass renders the resulting cluster acceleration structure. |
|
| src/ |
Graphics | 2 | 0 | ||
| src/ |
Data | 81 | 81 | Clustering for lists of Float, Vec2, Vec3 and Vec4. |
Points into structure — Voronoi, Apollonius, contours and clusters, Typography as geometry — a string becomes contours |
| src/ |
Audio AI | 18 | 18 | The EnCodec reconstruction microscope: what a neural codec kept, what it threw away, and what it wrote down in between. | EnCodec round trip |
| src/ |
Examples · internal | 2 | 1 | ||
| src/ |
Workspace | 232 | 3 | The local history of code Field compiles and runs, stored in SQLite and summarised for the code-use panels and agent tools. | |
| src/ |
Examples · internal | 2 | 0 | ||
| src/ |
Examples · internal | 2 | 0 | ||
| src/ |
Graphics | 21 | 13 | The colour vocabulary the visualization helpers share: Color4, a [0,1]-component colour value with no dependencies, and Colormaps, eight named ramps that can be sampled at any parameter. |
Imaging and computer vision |
| src/ |
Search | 27 | 27 | A reverse-Polish language whose programs are pictures: tokens push numbers and colours onto a stack, the program runs once per pixel of a square, and what is left on the stack is that pixel's colour. | |
| src/ |
Search | 1 | 1 | The box-facing front of the ColorRpn family: one call puts a breeding grid of generated pictures in a box's output panel, and clicking two of them breeds the next generation. |
|
| src/ |
Search | 16 | 16 | The breeding rules for ColorRpn programs: what a child of two programs is, and the eight mutations that make one. |
|
| src/ |
Graphics | 15 | 15 | Colour constructors for the stdlib. | Colors to FLine examples, Visualizers, Displays, and Little Instruments |
| src/ |
Graphics | 11 | 11 | A Vulkan command buffer allocated from a CommandPool: primary or secondary, one-time-submit or reusable, with CommandBuffer.beginRecording, CommandBuffer.endRecording and CommandBuffer.reset. |
|
| src/ |
Graphics | 5 | 0 | A Vulkan command pool for one queue family, from which Field allocates command buffers. | |
| src/ |
Workspace · internal | 7 | 7 | A ranking prior for the completion popup taken from a type's CommonMembers annotation, so that an empty-prefix popup such as a bare f. lists the members that matter first. |
|
| src/ |
Examples | 2 | 1 | ||
| src/ |
Workspace · internal | 3 | 1 | Smoke test of KotlinInterface.CompiledSnippet: compile a snippet once, then evaluate it many times. |
|
| src/ |
Workspace · internal | 2 | 1 | Runs Field's completion chain end to end against the Analysis-API sidecar, inside a live Field JVM: a box's gathered preamble and this JVM's classpath go out over HTTP and the candidates come back. | |
| src/ |
Workspace · internal | 2 | 1 | ||
| src/ |
Workspace · internal | 17 | 15 | A reproducible corpus of real boxes for measuring Kotlin completion, harvested with their macros already expanded so each box sees the preamble it has at run time. | |
| src/ |
Workspace · internal | 2 | 1 | Builds the checked-in completion fixtures under tools/completion-corpus/boxes, and on a plain run guards them instead of rewriting them. |
|
| src/ |
Workspace · internal | 2 | 1 | What Kotlin completion offers at a caret, read against what it ought to offer there. | |
| src/ |
Workspace · internal | 4 | 1 | A probe that dumps the K1 completer's raw candidates over the shared completion fixtures, for diffing against the K2 Analysis-API sidecar's output. | |
| src/ |
Workspace · internal | 2 | 1 | How many KDoc drafts completion has cached, for the welcome page. | |
| src/ |
Workspace · internal | 2 | 1 | Asks how completion does on Field's own documentation: the fixtures are real doc code with the caret put back where the author was typing. | |
| src/ |
Workspace · internal | 2 | 1 | Durable, append-only observations of what happens at Field's autocomplete UI boundary. | |
| src/ |
Workspace · internal | 2 | 1 | ||
| src/ |
Graphics | 22 | 22 | Reads PlayCanvas's quantized .compressed.ply splat files back into ordinary per-splat floats. |
|
| src/ |
Graphics | 0 | 0 | ||
| src/ |
Graphics | 6 | 6 | How an edited splat cloud leaves Field, in the PlayCanvas .compressed.ply format it arrived in. |
|
| src/ |
Graphics | 25 | 9 | ComputeMesh is a compute dispatch with its own push constants inside a ComputeModule; the rest of the file is the barriers that order compute work against transfers, graphics and host reads. |
|
| src/ |
Graphics | 39 | 5 | A compute pipeline as a renderable module: ComputeModule compiles and introspects a compute shader, owns its descriptor sets, and dispatches the ComputeTasks registered in its meshes. |
|
| src/ |
Graphics | 13 | 5 | A Target that records compute and ray-tracing modules into a frame without drawing to a window. |
|
| src/ |
Polytopes | 68 | 33 | The constraint vocabulary a realization run is written in. | Polytopes: topology first, coordinates later |
| src/ |
Examples · internal | 2 | 1 | ||
| src/ |
Machine learning | 41 | 18 | The parts an AI4 turn's prompt is built from, tagged with how long each is kept and whether it changes between turns. | |
| src/ |
Workspace | 15 | 15 | The graph walk that decides which box supplies a value read through fromContext, prop or @exported. |
|
| src/ |
Examples · internal | 2 | 1 | ||
| src/ |
Examples · internal | 2 | 1 | ||
| src/ |
Workspace | 5 | 4 | Builds the JSON answer to "why did this value resolve here?" for the backdoor, MCP and AI tools. | |
| src/ |
Examples | 0 | 0 | ||
| src/ |
Workspace | 8 | 4 | The AI tool WhyDoesThisResolve, which lets the in-app assistant ask where a box's value comes from. |
|
| src/ |
Graphics | 24 | 17 | Marching-squares iso-contours for 2D scalar fields, plus the scalar field most callers want to contour. | Points into structure — Voronoi, Apollonius, contours and clusters |
| src/ |
Graphics | 23 | 14 | Merge trees and contour trees of a scalar field on a regular grid. | Merge trees and contour trees |
| src/ |
Visualization | 12 | 7 | The mapping between a slider's travel and its value: linear, logarithmic, power-taper or bipolar. | |
| src/ |
Workspace · internal | 6 | 1 | The phone controller surface: the /controllers routes that let a second device see and drive the selected box's controls and outputs. |
|
| src/ |
Visualization | 36 | 30 | Visualizers, Displays, and Little Instruments | |
| src/ |
Polytopes | 14 | 9 | Conway prefix notation: the one-line string that names a polyhedron by how it is built. | Polytopes: topology first, coordinates later |
| src/ |
Imaging | 8 | 1 | The shared base of the native browser-frame receivers, which copies each imported frame into one stable texture for rendering. | |
| src/ |
Workspace | 3 | 3 | Duplicating boxes inside a document: copyBox clones one box, copyBoxes clones a selection and rewires its connections, and nextCopyName names the results. |
|
| src/ |
Languages | 76 | 31 | The tree FieldML actually evaluates: the typed tree with its source positions dropped and its multi-parameter lambdas curried into one-parameter CLam nodes. |
FieldML stage by stage |
| src/ |
Workspace | 9 | 4 | Per-box coroutine profiling behind the Profiling panel: wall time, CPU time and allocation charged to the box and strand that launched each continuation. | Profiling |
| src/ |
Machine learning | 25 | 24 | Synthetic drawings to teach a learned pen: Hershey plotter fonts and four drawing generators, and a writer that turns a list of drawings into a corpus python/fieldpen can train on. |
Teaching a pen, A pen that sees |
| src/ |
Audio AI | 12 | 12 | Turns a window of a recording in the Field audio corpus into a box that plays it. | |
| src/ |
Audio AI | 2 | 2 | The audition surface for a corpus nearest-neighbour query: the query window and every window the search returned, as players on one shared relative timeline. | Corpus microscope: from recordings to related windows |
| src/ |
Audio AI | 9 | 9 | Multi-scale corpus operations: segment a source into overlapping windows, embed each window with grouped audio descriptors, and retrieve neighbours by weighted distance. | Corpus microscope: from recordings to related windows |
| src/ |
Math | 18 | 18 | Measures of statistical dependence between two equal-length DoubleArrays, batch and rolling. |
Values over time: interpolants & keyframes, Measuring dependence between two signals |
| src/ |
Simulation | 160 | 34 | Evolving 2D creatures: a genetic algorithm over bodies of points and springs whose every point is a foot with a cyclic contact program, and whose joints are angle motors following cyclic target curves. | Evolving Creatures |
| src/ |
Examples · internal | 2 | 1 | ||
| src/ |
Audio | 17 | 12 | Reads a Csound box's text as a .csd document and maps box lines to its options, orchestra, score and instruments. |
|
| src/ |
Synthesis | 35 | 29 | The box-facing side of Csound: an orchestra and a score as a sound source, with control channels both ways. | Csound |
| src/ |
Synthesis | 60 | 50 | A running Csound you can render offline or play through Field's audio engine, with queued score events, live recompilation and thread-safe control channels. | How to make sound in Field |
| src/ |
Synthesis | 20 | 9 | Csound as a box Main Language: Run, Launch and Alt-Enter on .csd text, with opcode completion and error lines mapped back into the box. |
|
| src/ |
Audio | 6 | 6 | Finds and binds libcsound, the optional native library behind CsoundInstance, and explains how to build it when it is missing. |
|
| src/ |
Audio | 22 | 16 | The opcode list a Csound box completes against, generated from libcsound and joined with the Csound Reference Manual's descriptions. | |
| src/ |
Simulation | 10 | 5 | A reader for motion-capture CSV, and a clip that samples it at an arbitrary time. | |
| src/ |
Math | 5 | 5 | A double-precision 3D cubic Bézier for planning paths with a minimum turning radius. | |
| src/ |
Workspace · internal | 4 | 1 | Custom marking menus: Box.customMarking maps a direction and a label to a callback, and the frontend shows the entries as a radial menu on the box. |
|
| src/ |
Visualization | 16 | 9 | Field's client for the native/field-d2-layout helper — d2's layout engines, TALA in particular, over a one-shot subprocess. |
|
| src/ |
Visualization | 4 | 3 | Colour correction for marks written from code, so that they show as asked under the drawing layer's dark theme rather than as their inverted, hue-rotated selves. | |
| src/ |
Visualization | 2 | 2 | A typed frame, charting its own columns. | |
| src/ |
Workspace · internal | 2 | 1 | Measures what wiring the Kotlin DataFrame compiler plugin adds to the cost of building a box's Kotlin engine. | |
| src/ |
Workspace · internal | 3 | 1 | Spike that measures what the Kotlin DataFrame compiler plugin can do inside Field's K2 REPL. | |
| src/ |
Visualization | 1 | 1 | ||
| src/ |
Visualization | 3 | 3 | Makes Kotlin DataFrame values render as Field values (.h, .h2, display and box return values) without DataFrame having to know Field exists. |
|
| src/ |
Visualization · internal | 3 | 0 | Checks that DataFrame values render through Field's value registries — DataFrameVisualizer. |
|
| src/ |
Languages | 33 | 20 | The facade over parser and engine: a Datalog holds a program, answers queries as DlRows, and reconstructs the proof of a derived fact. |
|
| src/ |
Languages | 41 | 17 | The abstract syntax of Field's Datalog — see Datalog for the facade, DatalogParser for the concrete syntax and DatalogEngine for what evaluates this. |
|
| src/ |
Languages | 4 | 4 | The Field bridge: the live box graph as Datalog base relations. | Datalog in a box |
| src/ |
Languages | 6 | 6 | Serves datalog.js, the browser-side Datalog editor support, to the page and to the test that checks it. |
|
| src/ |
Examples | 3 | 1 | ||
| src/ |
Languages | 39 | 17 | Storage and evaluation: indexed relations, a safety-directed body planner, stratification, and a semi-naive fixpoint. | |
| src/ |
Languages | 15 | 4 | Datalog as a box language: the DatalogExecution that runs fragments inside a box, and the registration that puts Datalog in the Main Language menu. |
|
| src/ |
Languages | 3 | 3 | Line notes for a Datalog box (LineNotes): what a line's statement means in the model the box's runs have built. |
|
| src/ |
Languages | 4 | 4 | Any live object graph as Datalog base relations, by way of afield.data.query.graph. |
Datalog in a box |
| src/ |
Languages | 7 | 5 | Source text to abstract syntax: the lexer and recursive-descent parser every Datalog program in Field goes through, and the two word lists that decide what the notation reserves. | |
| src/ |
Languages · internal | 3 | 1 | Smoke test for the Datalog deductive-database language in afield.data.query.datalog. |
|
| src/ |
Languages | 16 | 10 | The why-not layer: Datalog.whyNot walks a failing conjunction literal by literal and names the one that took the answer count to zero. |
|
| src/ |
Visualization | 32 | 23 | Editor decorations driven from running code: RawDecoration marks a span of a box's source in Monaco, and the Marker extensions here — histogram, history, stats, liveNumber, toggle, beep, bop — attach live values and clickable widgets to the line that called them. |
|
| src/ |
Machine learning | 45 | 45 | A learned two-body interaction: the acceleration on a particle as a function of the neighbours around it, fitted by autodiff from examples of any rule that can already be evaluated. | Neural particle systems |
| src/ |
Graphics | 0 | 0 | Releases a renderer's deferred GPU resources at shutdown, when no later frame will come to age them out. | |
| src/ |
Examples · internal | 2 | 1 | ||
| src/ |
Math | 4 | 4 | SIMD helpers for dense DoubleArray arithmetic, using the JDK Vector API: DenseDoubleOps provides dot, combine and scale. |
|
| src/ |
Workspace · internal | 1 | 1 | One websocket handler, dependency-graph, which is how the dependency layer asks what it draws. |
|
| src/ |
Machine learning | 20 | 10 | Monocular depth, from any image, with no depth camera. | Depth and CLIP: neural vision in a box |
| src/ |
Machine learning | 14 | 12 | DepthAnything on its own thread, so a 100–400ms inference cannot stall the renderer. |
|
| src/ |
Workspace · internal | 1 | 0 | ||
| src/ |
Graphics | 0 | 0 | ||
| src/ |
Graphics | 8 | 2 | Descriptor set layouts for the renderer's shaders: DescriptorSetLayout owns a Vulkan layout handle and releases it with its device, and DescriptorSetLayout.SimpleDescriptorSetLayout builds one from parallel lists of bindings and descriptor types. |
|
| src/ |
Graphics | 47 | 45 | The logical Vulkan device: Device wraps a PhysicalDevice and enables the extensions and features the renderer uses. |
|
| src/ |
Audio | 36 | 18 | Optional compute devices for Steam Audio: EmbreeDevice for the Embree ray tracer, OpenClDeviceList and OpenClDevice for GPU work, and the RadeonRaysDevice and TrueAudioNextDevice built on OpenCL. |
|
| src/ |
Workspace | 11 | 3 | Startup phases: functions annotated RunsAt are found by a classpath scan and called by runAll at a named phase. |
|
| src/ |
Languages | 13 | 13 | Where a FieldML compile says something is wrong, and how badly. | |
| src/ |
Workspace | 410 | 20 | The server side of the workspace browser: listing, searching, tagging and copying the documents under a workspace folder. | |
| src/ |
Audio | 22 | 17 | Rendering the direct sound path: distance attenuation, air absorption, directivity, occlusion and transmission. | |
| src/ |
Graphics | 25 | 7 | Direct lighting from one-sided rectangular area emitters, shaded over a raster G-buffer. | Direct lighting |
| src/ |
Graphics | 13 | 1 | A small scene for trying DirectLighting: a floor, three cubes and a moving area light. |
|
| src/ |
Graphics | 2 | 1 | ||
| src/ |
Math | 11 | 0 | 2D multiplicatively weighted Voronoi (Apollonius) diagrams. | |
| src/ |
Audio | 15 | 15 | Offline rendering of a pattern through the real Dirt sample library. | How to make sound in Field |
| src/ |
Audio | 59 | 4 | The TidalCycles Dirt-Samples collection loaded, indexed, and played from Field. | Boolean network music examples, A Petri net that throws sparks |
| src/ |
Imaging | 17 | 5 | DLSS super resolution, DLAA and Ray Reconstruction through NVIDIA NGX, as a pass recorded into a Vulkan command buffer. | From modules to reconstruction, Neural reconstruction, Ray Reconstruction |
| src/ |
Lighting | 8 | 8 | Box-scoped ownership of DMX sockets. | Driving Lights: Art-Net and sACN |
| src/ |
Lighting | 27 | 27 | DMX reception: Field as an Art-Net or sACN node on the network. | Driving Lights: Art-Net and sACN |
| src/ |
Lighting | 36 | 36 | DMX transmission: the frame buffers a box writes into, and the thread that puts them on the wire. | A RectSL scene on a light rig, Driving Lights: Art-Net and sACN |
| src/ |
Lighting | 7 | 7 | Drawings of a DMX rig and its universes as FLine geometry, for a box's output or a PNG. |
A RectSL scene on a light rig, Driving Lights: Art-Net and sACN |
| src/ |
Workspace · internal | 27 | 3 | Exports a Field document to documentation pages, and the capture helpers that export uses. | |
| src/ |
Workspace · internal | 40 | 15 | Notes written on a documentation page, and the /field-docs/ mirror those pages are read through. |
|
| src/ |
Audio · internal | 17 | 17 | An audit of every playable audio file the documentation publishes, by the family of code that made it. | |
| src/ |
Examples · internal | 2 | 1 | ||
| src/ |
Workspace · internal | 27 | 5 | The documentation revision pass, as a page: /docs-pass.html. |
|
| src/ |
Workspace · internal | 5 | 2 | Lexical search over the documentation sources (the Markdown pages under public/docs/, outside assets/), for Open Anything. |
|
| src/ |
Machine learning | 5 | 2 | The search engine behind the documentation panel, which retrieves from Field's local index and answers through the selected language model. | |
| src/ |
Machine learning | 1 | 1 | The server side of the documentation search box: the docs_search_input Field message handler. |
|
| src/ |
Examples | 2 | 1 | ||
| src/ |
Workspace · internal | 4 | 0 | A repo source file, from this checkout, for the docs pane. | |
| src/ |
Workspace · internal | 2 | 1 | ||
| src/ |
Machine learning | 32 | 32 | The AI4 tools for a document's Markdown guides: the durable notes and handoffs kept in the document's own folder, its docs/ or its guides/. |
|
| src/ |
Examples | 3 | 1 | ||
| src/ |
Examples · internal | 2 | 0 | ||
| src/ |
Examples · internal | 4 | 3 | ||
| src/ |
Workspace · internal | 8 | 6 | Saves pending document edits when Field shuts down, so a Ctrl-C does not lose the last few seconds of work. | |
| src/ |
Machine learning | 21 | 21 | The AI4 tools that read and patch the live source of a box, navigate the editor to it, and export a snapshot of part of the graph. | AI4's built-in tools |
| src/ |
Examples · internal | 2 | 1 | ||
| src/ |
Examples | 5 | 4 | ||
| src/ |
Synthesis | 23 | 18 | dough itself, run as WebAssembly inside GraalVM, and the two wrappers that hand its output to Field's audio engine. | How to make sound in Field |
| src/ |
Synthesis | 57 | 40 | Native Kotlin ports of low-level DSP from dough, carrying dough's AGPL-3.0 terms. | DoughDSP: hear the primitives |
| src/ |
Audio · internal | 8 | 2 | Response plots of the dough DSP primitives (PlateReverb, Phaser and others), drawn from samples the primitives actually produce. |
|
| src/ |
Audio · internal | 3 | 1 | Smoke test for the dough DSP ports: approximations, filter, phaser, reverb and envelope, checked by behaviour rather than by exact samples. | |
| src/ |
Synthesis | 16 | 14 | Headless offline sound-render harness for the dough DSP ports in DoughDsp.kt: every audible example on the docs page is produced by running one of those primitives on the CPU. |
DoughDSP: hear the primitives |
| src/ |
Synthesis | 26 | 24 | Box-level dough: sound("/dough/play/note/60/s/sine/...") from any box, and thisRMS, the level that box's own sounds are making right now. |
|
| src/ |
Patterns | 22 | 13 | The harness that renders the sound on chain_drawn_morph.md from two strokes in a document's drawing. |
A Drawn Morph, Heard |
| src/ |
Patterns | 32 | 21 | A drawn score, heard — the harness behind public/docs/chain_drawn_score.md. |
A Drawn Score, Heard |
| src/ |
Math | 28 | 1 | Rigid 3D transforms (rotation plus translation) as mutable unit dual quaternions, with blending. | |
| src/ |
Examples · internal | 2 | 0 | ||
| src/ |
Graphics | 6 | 6 | The second of Field's two skinning blends: joint motions averaged as dual quaternions, for rigs that twist far enough to break the usual one. | |
| src/ |
Simulation | 43 | 17 | A 2D rigid-body scene: dyn4j's World behind a Kotlin surface that addresses bodies by handle, with a converter from Field's own drawing into collision geometry. |
|
| src/ |
Data | 11 | 11 | The two useful ways to look at dynamic_graph_systems.kt — the point cloud and the weighted edges joining it, so a time-varying graph can be watched rather than described. |
Graphs that change while you watch |
| src/ |
Data | 157 | 32 | Time-varying point-and-edge systems: point clouds that move every frame while the graph joining them is continually reinforced and decayed. | Graphs that change while you watch |
| src/ |
Graphics | 22 | 16 | The cursor a Vulkan buffer is written through: std430 padding, integers packed into float slots, and a buffer that grows under a write that would run past its end. | |
| src/ |
Examples | 4 | 4 | ||
| src/ |
Workspace · internal | 4 | 1 | A registry that maps URI prefixes to directories, so the server can serve files from folders chosen at runtime. | |
| src/ |
Workspace · internal | 21 | 7 | An EDN reader and printer, the text format of a document's metadata.edn. |
|
| src/ |
Workspace | 13 | 1 | A bounded scalar parameter that keeps the value it was asked for apart from the value it uses. | |
| src/ |
Synthesis | 76 | 47 | The mono effects: delays, reverbs, distortions and dynamics, each one a SignalProcessor that / pipes a signal into. |
Visualizers, Displays, and Little Instruments |
| src/ |
Imaging | 0 | 0 | The Electron process that paints a web page for Field, and the ways a frame of it crosses into this process. | |
| src/ |
Workspace · internal | 5 | 2 | This checkout's Field Electron app, driven by the server's Playwright over CDP. | |
| src/ |
Imaging | 12 | 4 | Shows a Field 4 render target live in a box's output area in the Field Electron app, sharing GPU surfaces with Electron instead of reading pixels back. | |
| src/ |
Graphics | 77 | 75 | Propositions from Euclid's Elements, constructed with compass and straightedge in the manner of Oliver Byrne's coloured edition (1847). | Euclid's Elements |
| src/ |
Languages | 5 | 5 | Completion and line notes for RectSL written inside a Kotlin box's code, as a string whose first line is #rectsl (EmbeddedRectSL). |
|
| src/ |
Languages | 8 | 8 | Editor help for StackSL written as a string inside a Kotlin box: completion with the StackSL vocabulary, and each line's stage as a line note. | |
| src/ |
Data | 25 | 25 | A handful of embeddings as a shape you can look at: every pairwise distance, and the points placed in 3D so that those distances are the lengths of the edges between them. | |
| src/ |
Audio | 34 | 28 | Simulated reflection data as energy, and its reconstruction into impulse responses. | |
| src/ |
Audio | 40 | 26 | Kotlin enumerations mirroring Steam Audio's C enums (log levels, scene types, HRTF and reflection options, baking variations and the rest), each carrying the native value that crosses the FFM boundary. | |
| src/ |
Synthesis | 46 | 10 | Control shapes: Gate, ADSR, AR, Line and BreakpointEnvelope generate one, Slew limits how fast one can move, and EnvelopeFollower recovers one from a signal that already exists. |
Visualizers, Displays, and Little Instruments |
| src/ |
Audio | 126 | 0 | Readers for two on-disk audio-analysis products, so a box can query them by time. | |
| src/ |
Graphics | 59 | 39 | Plane geometry in the classical sense: points, lines, rays, segments, circles, arcs and polygons, with every pairwise intersection, closest point and distance, and the standard constructions (perpendicular bisectors, angle bisectors, circumcircles, incircles, tangents). | Euclid's Elements |
| src/ |
Languages | 30 | 30 | The FieldML runtime: it walks a lowered CoreExpr tree and returns the FieldMLValue the tree evaluates to. |
|
| src/ |
Examples | 13 | 3 | ||
| src/ |
Workspace · internal | 1 | 0 | ||
| src/ |
Workspace | 35 | 2 | How a Kotlin box runs: KotlinExecution compiles and evaluates a box's code, launches what it returns, and routes its printed output, errors and completions back to the editor. |
|
| src/ |
Workspace | 0 | 0 | Whether a box run succeeded, decided from what the run emitted rather than from what its engine reported. | |
| src/ |
Examples · internal | 2 | 1 | ||
| src/ |
Examples | 2 | 1 | ||
| src/ |
Examples | 3 | 1 | ||
| src/ |
Workspace · internal | 3 | 3 | Renders the source-level type name that @exported writes into a consuming box's preamble. |
|
| src/ |
Workspace · internal | 6 | 2 | Smoke for ExportedTypeNames, which decides the type text @exported splices into another box's preamble. |
|
| src/ |
Languages | 92 | 35 | FieldML's surface syntax tree: one node per piece of written syntax, each carrying the source range it was parsed from. | FieldML stage by stage |
| src/ |
Internal · internal | 8 | 3 | Box actions: named commands a box registers in its actions map, which resync gathers from the box and its ancestors and sends to the UI. |
|
| src/ |
Imaging | 50 | 14 | The resident texture that browser paints arrive in: a fixed-size image Field samples like any other, refreshed from frames a producer offers between draws. | |
| src/ |
Imaging | 0 | 0 | Turning a browser's own GPU allocation into a Vulkan image this process can read: the Windows D3D11 shared-handle import and the Linux dma-buf import. | |
| src/ |
Graphics | 0 | 0 | Combined eye gaze from OpenXR's XR_EXT_eye_gaze_interaction, as a single pose action inside the HMD target's existing gameplay action set. |
|
| src/ |
Search | 33 | 33 | Interactive evolution: a grid of pictures in a box's output panel, where clicking the ones you like breeds the next generation. | |
| src/ |
Renderers | 3 | 3 | What connects StandardRenderer's raster bundle to the ray-traced DirectLighting pass. |
Direct lighting |
| src/ |
Renderers | 12 | 1 | The renderer's off-screen passes as a named, ordered list, and the one place that order is written into a RenderTarget. |
|
| src/ |
Renderers | 4 | 4 | The glTF side of the fabricated scene model: one call that turns a loaded GltfSupport.GltfModel into a FabricateScene, and two conversions beside it. |
|
| src/ |
Renderers | 17 | 2 | The flattened per-material record a render queue carries, and the table that hands out its ids. | |
| src/ |
Renderers | 73 | 42 | The vocabulary for declaring a chain of post passes that are not all the same shape, and the pure planner that resolves one. | |
| src/ |
Renderers | 20 | 16 | Materializes a planned pass chain onto the GPU, through the post stack that already exists. | |
| src/ |
Examples | 2 | 1 | ||
| src/ |
Renderers | 13 | 1 | The ordering primitive the Fabricate renderer's pass collections are built on. | |
| src/ |
Renderers · internal | 2 | 1 | ||
| src/ |
Renderers | 81 | 81 | Worked multi-resolution passes, as lists of FabricatePassSpec ready to hand to a chain. |
|
| src/ |
Renderers | 4 | 3 | High-level post-processing helpers for StandardRenderer.Bundle, layered on top of the ordered FabricatePostStack. |
Fabricate Renderer |
| src/ |
Renderers | 17 | 3 | The ordered post-processing stack a Fabricate pass lands in, and the record describing one pass. | |
| src/ |
Examples | 2 | 1 | ||
| src/ |
Renderers | 21 | 2 | Render queue data structures and the FabricateScenePlanner that builds them from a FabricateScene. |
Fabricate Renderer |
| src/ |
Renderers · internal | 2 | 1 | ||
| src/ |
Examples | 2 | 1 | ||
| src/ |
Renderers | 128 | 7 | The scene graph: nodes, transforms, materials, lights, animation playback, and the glTF import that fills them. | Fabricate Renderer, Geometry from disk |
| src/ |
Renderers · internal | 2 | 1 | ||
| src/ |
Renderers · internal | 2 | 1 | ||
| src/ |
Renderers | 4 | 4 | Expose Fabricate's built-in shaders the same way user-authored shaders work: each pass becomes an editable box with vertex/fragment GLSL tabs, live introspection, and alt r hot reload. |
Fabricate Renderer |
| src/ |
Examples | 2 | 1 | ||
| src/ |
Graphics | 0 | 0 | ||
| src/ |
Simulation | 2 | 1 | The packed kernel for the membrane energy: FastMechanics computes the same energy and gradient as Mechanics from flat arrays prepacked once per solve. |
|
| src/ |
Synthesis | 19 | 14 | The box-facing side of Faust: compile a program, play it, show what it declares. | Faust |
| src/ |
Examples | 0 | 0 | ||
| src/ |
Synthesis | 15 | 8 | One compiled Faust program, instantiated and ready to make sound. | |
| src/ |
Synthesis | 5 | 5 | The #faust editor extension and the vocabulary it completes against. |
|
| src/ |
Examples | 3 | 1 | ||
| src/ |
Synthesis | 51 | 23 | The Faust compiler, running inside Field. | |
| src/ |
Synthesis | 63 | 36 | A pattern plays a Faust program. | Faust |
| src/ |
Synthesis | 48 | 34 | A Faust program played polyphonically, by a pattern. | How to make sound in Field |
| src/ |
Audio · internal | 3 | 1 | Smoke test for patterns played through a Faust voice bank: checks that onsets land on the notated sample and that a chord really sounds three voices at once. | |
| src/ |
Audio | 20 | 20 | The two published clips that make polyphony audible: one chord progression, eight voices and one. | |
| src/ |
Audio · internal | 3 | 0 | The Faust binding, end to end, without audio hardware. | |
| src/ |
Audio | 13 | 12 | ||
| src/ |
Graphics | 37 | 21 | Following the topological features of a 2-D field from one moment to the next, so that a peak keeps its identity while it moves, and comparing two fields by their topology alone. | Tracking features through time and scale, Vector field topology |
| src/ |
Graphics | 6 | 5 | A Vulkan fence the CPU waits on to learn that submitted GPU work has finished. | |
| src/ |
Internal · internal | 6 | 4 | The Ceres solver backend that calls the native ken_ceres_jvm wrapper through the Java foreign-function API (java.lang.foreign), with no JNI glue. |
|
| src/ |
Polytopes | 31 | 22 | The bridge from a polytope to the things Field can actually draw: FLines and a TriMesh. |
Polytopes: topology first, coordinates later, A polytope, cut open, and traced, Agent transcript gallery |
| src/ |
Audio AI | 53 | 53 | The verbs of Field Audio: one client object whose every method is a request to the model service, plus the typed constructors for the two operations that ship with real controls. | Field Audio AI, EnCodec round trip, Gesture board: drawing toward a sound |
| src/ |
Synthesis | 22 | 15 | The file that opens an audio device: the OpenAL output stream Field plays through, the optional capture stream audioInput() reads from, and the mixer that sums every registered patch into it. |
|
| src/ |
Workspace · internal | 1 | 1 | ||
| src/ |
Examples | 0 | 0 | ||
| src/ |
Internal · internal | 0 | 0 | ||
| src/ |
Imaging | 14 | 8 | The JVM side of the field-encode helper, which encodes Field render targets (VideoToolbox on macOS, the field-encode-linux build on Linux) and streams them to the visionOS app. |
|
| src/ |
Machine learning | 131 | 20 | The box graph and execution tools of Field's own agent: list, create, delete, edit, connect, run, launch, stop and read the output of boxes in the current document. | AI4's built-in tools |
| src/ |
Workspace · internal | 3 | 2 | Kotlin source to a parse tree, without compiling it. | |
| src/ |
Languages | 10 | 10 | FieldML's front end behind one call: source text in, and whatever its four stages managed to produce out. | FieldML stage by stage |
| src/ |
Languages | 3 | 3 | Completion and hover for a FieldML box: what the editor offers under the caret, and what the card over a symbol says. | |
| src/ |
Languages | 13 | 13 | FieldML as a box language: set a box's Main Language to FieldML and its children hold FieldML programs instead of Kotlin. | |
| src/ |
Languages | 10 | 10 | Reaching Field's Kotlin source macros from FieldML: a table of every macro MacroRegistry registers, with the route to each one, and the expansion that follows the route. |
|
| src/ |
Languages | 2 | 2 | The value behind every prelude name: what a FieldML program can call before it declares anything. | |
| src/ |
Languages | 0 | 0 | FieldML's read of the shared Kotlin source index, and the staleness check that decides whether to trust it. | |
| src/ |
Languages | 10 | 10 | The type of every name a FieldML program has before it declares anything: the prelude, as the type checker sees it. | |
| src/ |
Audio AI | 5 | 5 | How a Field document remembers audio work: ids and judgements in a box property, and not one sample of audio. | |
| src/ |
Graphics | 56 | 56 | Samples values out of a running shader into a GPU buffer and shows them in a box's output as a histogram and summary statistics. | Field Probes: instrumenting shaders |
| src/ |
Examples · internal | 1 | 0 | ||
| src/ |
Imaging | 12 | 11 | Streams a Field 4 render target to the visionOS app as video (HEVC by default), through the field-encode helper. |
Field on Apple Vision Pro |
| src/ |
Graphics | 56 | 56 | Computes streaming statistics of shader values on the GPU and reads the results back to box code. | Field Probes: instrumenting shaders |
| src/ |
Examples · internal | 1 | 0 | ||
| src/ |
Imaging | 29 | 1 | A live web page as a Field texture: a hidden Electron window renders offscreen and its paints become an ExternalBrowserSurface a shader can sample. |
|
| src/ |
Imaging | 5 | 2 | ||
| src/ |
Imaging | 17 | 2 | ||
| src/ |
Data | 33 | 33 | Path resolution for the running Field session: turns a short spec into a real File or Path. |
File management |
| src/ |
Examples · internal | 3 | 0 | ||
| src/ |
Workspace · internal | 5 | 2 | File proxy boxes: a box whose contents mirror a text file, given by an absolute path or by a path under the workspace or the document folder. |
|
| src/ |
Machine learning | 9 | 6 | Where Field's derived completion indexes live, resolved in one place for every index that needs it. | |
| src/ |
Workspace · internal | 5 | 5 | Reloads an open document's properties when their sidecar files are edited outside Field. | |
| src/ |
Synthesis | 46 | 7 | The filters, and the one saturator that keeps them company. | Subharmonic Synthesis: an Octave Below, Agent transcript gallery |
| src/ |
Graphics | 107 | 77 | FLine is Field's drawn path: a list of move, line and cubic segments with per-node and per-line properties, built with moveTo / lineTo / cubicTo and drawn by Box.lines(...). |
|
| src/ |
Graphics | 13 | 5 | Bridge from drawn geometry to the graph algorithms: turns one or more FLines into a welded point graph. |
|
| src/ |
Visualization | 0 | 0 | ||
| src/ |
Graphics | 3 | 0 | The server side of an editable Box.lines(..., editable = true) drawing: an edit session per widget that applies the browser's point drags and new strokes to the live FLines. |
|
| src/ |
Graphics | 5 | 5 | Curve-preserving boolean operations and cubic offsets for FLine, in the manner of Paper.js. |
FLine examples (Field graphics) |
| src/ |
Graphics | 35 | 16 | Gaussian-process curves: fit a GP to an FLine or to points, then draw its mean, samples and uncertainty as lines. |
Drawing with Gaussian processes |
| src/ |
Graphics | 272 | 118 | Comprehensive computational geometry utilities for FLine operations implemented as extension functions. | FLine examples (Field graphics), Vectorizing line drawings: polyvector fields, Euclid's Elements |
| src/ |
Examples | 34 | 34 | ||
| src/ |
Graphics | 3 | 3 | Resamples an FLine through a fitted curve: bySmileSplineInterpolating (Smile cubic spline), bySmileGaussianProcessInterpolating (Gaussian process) and byAkimaInterpolating. |
|
| src/ |
Examples | 7 | 5 | ||
| src/ |
Graphics | 23 | 22 | Fits ordinary cubics to Hyperbezier curves, so that family is usable everywhere an FLine already accepts a cubic. |
FLine examples (Field graphics) |
| src/ |
Graphics | 3 | 3 | Make a figure answerable: inspect draws FLines the way lines does and then names whatever you click on, in the figure's own coordinates. |
|
| src/ |
Graphics | 16 | 9 | Traces how the points of a changing drawing move from frame to frame, as one trajectory line per point. | |
| src/ |
Examples · internal | 3 | 1 | ||
| src/ |
Graphics | 62 | 18 | Morphing one FLine into another: align, match and blend two drawings so any in-between shape can be drawn. |
FLine examples (Field graphics) |
| src/ |
Graphics | 29 | 29 | Measuring, locating, trimming and crossing an FLine. |
FLine examples (Field graphics) |
| src/ |
Graphics | 21 | 15 | Choosing points along an FLine: pluggable samplers that return parameter and position pairs. |
|
| src/ |
Graphics | 7 | 6 | Converts FLines to and from java.awt.geom shapes, and walks them by distance with FLinesAndJavaShapes.Cursor. |
|
| src/ |
Graphics | 4 | 0 | Serializes an FLine to JSON and back, nodes and properties included, through FLineSerializer. |
|
| src/ |
Examples · internal | 3 | 0 | ||
| src/ |
Graphics | 23 | 14 | Turning a line into an outline: offsets, ribbons and buffers of an FLine, at fixed or varying width. |
|
| src/ |
Graphics | 13 | 9 | Writes FLines into GPU vertex streams: pointsOut, linesOut and trianglesOut sample lines into DynamicallyWriteable position and colour buffers. |
|
| src/ |
Graphics | 13 | 7 | Wiggling one line along another, and the moving frames that make it possible. | FLine examples (Field graphics) |
| src/ |
Visualization | 1 | 1 | A checkbox drawn in the editor that re-runs one block of a box without re-running the box. | |
| src/ |
Graphics | 2 | 1 | ||
| src/ |
Machine learning | 55 | 55 | Flow matching over 2D and 3D point clouds — flowMatch trains a velocity field that carries one distribution onto another, and the field it returns can be sampled, integrated part-way, or drawn. |
Flow Matching, Neural particle systems, A Generator, Graded by Datalog |
| src/ |
Simulation | 3 | 2 | Packaged GLSL helpers (grain.glsl, strokes.glsl, motion.glsl, tiles.glsl) for flow shaders, reachable as #include "flow/...". |
|
| src/ |
Synthesis | 10 | 9 | Frequency-modulation synthesis in two pieces: FMOperator is one modulated sine, and FMPatch wires several of them into the classic algorithms. |
|
| src/ |
Graphics | 26 | 2 | FM chirp curves: an eight-parameter family of 0..1 remapping curves, packed as half floats, that evaluate the same way in Kotlin and in GLSL. | |
| src/ |
Function | 108 | 56 | Certified bounds for an Fn over an interval — the third walker of FnFormulas, in interval arithmetic, and what turns a sampled envelope into a guarantee. |
Proving a Function's Range |
| src/ |
Function | 3 | 3 | The objective shared by both halves of the function-search family: FnMetric, a fun interface scoring a candidate signal against a target on one even sample grid (lower is better), plus a companion of ready-made metrics — rmse, mae, lp, maxError, huber, logCosh, correlation — and the fromResidual / window builders behind them. |
|
| src/ |
Examples | 13 | 8 | ||
| src/ |
Function | 0 | 0 | Formulas for the three ops whose shape is chosen by data on the node rather than by the op name. | |
| src/ |
Synthesis | 3 | 2 | Plays a Functions.Fn of time as audio, evaluating it at every sample rather than once per block. |
A function, played and read back |
| src/ |
Synthesis | 29 | 17 | One Functions.Fn taken through sound and back, and the distance between what went in and what came out — the harness behind public/docs/chain_fn_sound_roundtrip.md. |
|
| src/ |
Math | 14 | 4 | A forecaster used as a second opinion on a sequence memory's choices, and the one place where the two ways of continuing a gesture meet. | |
| src/ |
Workspace · internal | 8 | 3 | Reformats a box's Kotlin or GLSL code. | |
| src/ |
Workspace · internal | 1 | 0 | ||
| src/ |
Languages | 14 | 14 | Makes ForthField a language a box can be written in. | |
| src/ |
Languages | 51 | 8 | ForthField — a compact, extensible Forth used by Field4 for live coding. | |
| src/ |
Examples · internal | 3 | 0 | ||
| src/ |
Graphics | 6 | 3 | Inline value printers for the Vulkan graphics types, so a renderer, buffer or texture shows as a readable table when a box prints it. | |
| src/ |
Math | 18 | 3 | Per-thread scratch memory for temporary vectors, reclaimed all at once when a scope ends. | |
| src/ |
Graphics | 30 | 29 | FrameBufferGroup holds one Vulkan buffer per swapchain image, so data written for the current frame never overwrites a buffer an in-flight frame is still reading. | |
| src/ |
Graphics | 16 | 15 | Tracks the previous frame's camera for one render target, so temporal passes can reproject pixels and know when there is no usable history. | |
| src/ |
Graphics | 7 | 1 | A diagnostic log of swapchain presentation timing, written to a file while enabled. | |
| src/ |
Workspace | 9 | 6 | Explicit frame boundaries and named stages for the Profiling panel, for code that has its own frame loop. | Profiling |
| src/ |
Graphics | 7 | 5 | Holds back presentation of a frame set until every member is ready, so several textures switch frames together. | |
| src/ |
Graphics | 7 | 3 | Paces an asynchronous frame set so each frame gets a whole source-frame interval to prepare before it is due. | |
| src/ |
Function | 42 | 21 | Search over the structure of Fn graphs — the genetic counterpart to the gradient fitting of a fixed structure's numbers in FunctionFit.kt. |
Functions to FLine examples (Field graphics) |
| src/ |
Function | 61 | 33 | Gradient-based fitting of Fn graphs — the differentiable counterpart to the genetic evolve in FunctionEvolve.kt. |
Functions to FLine examples (Field graphics), Differentiating Functions, Patterns: writing rhythm as a function of time |
| src/ |
Function | 69 | 31 | The data model and the copy engine underneath Field's graph-rewritable notion of a function: FnGraphNode / FnGraphEdge (an op name, role-tagged children, scalar metadata and an optional rebuild recipe) plus Functions.Fn.deepCopy and Functions.Fn.rewriteGraph, a bottom-up copy that offers every occurrence to an FnGraphEdit. |
Functions to FLine examples (Field graphics), Patterns: writing rhythm as a function of time |
| src/ |
Function | 42 | 42 | The looking-at-it layer for the Fn graph family: sample a graph on one shared time-base, then render it as a self-contained interactive HTML browser. |
Functions to FLine examples (Field graphics) |
| src/ |
Function | 41 | 15 | The query and rule-runner layer over the graph copier in FunctionGraph.kt. | Functions to FLine examples (Field graphics) |
| src/ |
Function | 12 | 9 | The op vocabulary for the whole Fn graph family, held in one object, OpRegistry: which op names the stdlib actually emits into a graph node, which of them are aliases of each other, and which can be rebuilt from an arbitrary node's role-addressed children — those rebuildable ones each carrying a family label (oscillator, noise, transform, …). |
|
| src/ |
Function | 70 | 70 | The selector => action string rewrite DSL, compiled and applied end to end. |
Functions to FLine examples (Field graphics) |
| src/ |
Function | 18 | 18 | The bridge that gives the string rewrite DSL a real Kotlin right-hand side. | Functions to FLine examples (Field graphics) |
| src/ |
Function | 13 | 11 | The third rewriting surface in the family, and the algebraic one. | Functions to FLine examples (Field graphics) |
| src/ |
Math | 548 | 461 | The Fn toolkit: one-dimensional signals as values you can build, compose, sample and draw. |
Functions to FLine examples (Field graphics) |
| src/ |
Examples | 9 | 6 | ||
| src/ |
Function | 27 | 14 | A function study: a set of Functions.Fn channels written as Kotlin in a box, kept as checked revisions an AI conversation can inspect, edit, observe and export. |
Talking a function into existence |
| src/ |
Function | 39 | 16 | The tools an AI4 conversation gets when it is opened on a function study's code. |
Talking a function into existence |
| src/ |
Math | 46 | 46 | Exact Gaussian-process regression: fit scalar observations (values and, optionally, slopes) and query the posterior mean, variance and joint covariance. | Drawing with Gaussian processes |
| src/ |
Renderers | 29 | 18 | Rendering a Gaussian splat capture: PLY reading, packing, depth sorting and the built-in splat shaders. | |
| src/ |
Examples · internal | 2 | 0 | ||
| src/ |
Audio | 42 | 14 | ||
| src/ |
Math | 19 | 10 | Closest-point, containment and intersection tests for segments, triangles, boxes, spheres and rays. | Linear algebra in Field |
| src/ |
Audio | 39 | 29 | Puts a 2D game's walls, sources and listener into Steam Audio's 3D simulation: World2D fixes the axis mapping and wall height, and WallSegment, WallSet, MovableWall and SharedWalls turn line segments into scene geometry. |
|
| src/ |
Graphics | 48 | 13 | A worked, public example of giving Field's AI its own tools — two of them, over the geometry the loaders in MeshFromDisk.kt read off disk. | Geometry from disk |
| src/ |
Examples | 1 | 0 | ||
| src/ |
Graphics | 80 | 76 | A recipe language for triangle meshes: emit triangles through a transform stack with a current colour and a current material, and get back a scene of named, shaded parts. | |
| src/ |
Visualization | 9 | 1 | GeometryFinding, the record a geometry checker or agent writes about a piece of geometry for review; it never changes whether a build is accepted. |
|
| src/ |
Graphics | 4 | 4 | The exit from GeometryBuilder to a file every other tool can open. |
|
| src/ |
Graphics | 37 | 37 | The answer Field's geometry-extraction modules share: named points, the curves that join them, and typed channels holding whatever each module measured along the way. | |
| src/ |
Workspace | 7 | 6 | A persistent annotation inbox for a custom canvas, the same one a Three.js viewer has: Box.geometryReviewSurface binds it to a box and returns a GeometryReviewSurface. |
|
| src/ |
Machine learning | 49 | 49 | AI4 tools for the geometry review inbox: listing a document's Three.js and canvas review views, reading and answering their notes, reporting findings, styling parts and inspecting a view. | AI4's built-in tools, Point to geometry, keep the context |
| src/ |
Graphics | 5 | 5 | Showing a geometry { } recipe in a studio-lit three view, and handing the recipe language to this document's AI4 chat. |
|
| src/ |
Machine learning | 0 | 0 | Independent viewer captures for the geometry review tools: a picture of a three.js view taken without moving the one the user is looking at. | |
| src/ |
Audio AI | 12 | 12 | Temporal sketches for source-conditioned generation, with prompt regions, onset events, and parameter curves that together express a generation intent. | Gesture board: drawing toward a sound |
| src/ |
Audio AI | 3 | 3 | A gesture board drawn as a picture of itself: prompt regions, onset events and parameter curves on one timeline, each mark labelled with how far into the model it reaches. | |
| src/ |
Graphics | 12 | 11 | Gesture takes and keyframe lanes, in both directions: bakeGesture turns a take recorded on a pad into two editable lanes, and lanesToTake renders lanes back into a take a pad accepts. |
The keyframe editor: drawing a value over time |
| src/ |
Graphics | 4 | 4 | Gesture pad to brush: a take recorded on a gesture(...) pad, or its x and y keyframe lanes after editing, painted onto a canvas as a TimedGesture. |
|
| src/ |
Internal · internal | 39 | 4 | A command-line entry point that replays a recorded pen gesture through a brush and writes the painted PNG, so an agent can try a gesture without a browser. | |
| src/ |
Languages | 0 | 0 | Reverse-mode automatic differentiation for the GLSL interpreter: d(pixel)/d(literal). |
|
| src/ |
Languages | 21 | 17 | The surrogate vocabulary a differentiable StackSL fit descends through: a mollified delta, the jump families it may be applied to, and the schedule that narrows it. | |
| src/ |
Workspace · internal | 4 | 0 | Completion and hover context for GLSL shader properties (fragment, vertex, compute and the rest), including Field's `{% ... |
|
| src/ |
Machine learning | 33 | 2 | GlslIncludeLibraryIndex scans directories of GLSL include files, Lygia by default plus any roots named in AFIELD_GLSL_INCLUDE_DIRS or repositories in AFIELD_GLSL_INCLUDE_REPOS, and records each file's include path, content hash and declared functions and macros in glsl_include_index.json under the AI filestore, so an agent can find which include defines a function. |
|
| src/ |
Languages | 7 | 7 | The evaluator for parsed GLSL shaders, tree-walking and single-threaded per invocation. | |
| src/ |
Languages | 0 | 0 | Interval arithmetic for the GLSL interpreter: a shader run over a whole region of fragUV at once, returning a bound on every colour any pixel in it can produce. |
|
| src/ |
Languages | 5 | 5 | A parser for the GLSL that StackSL's emitter actually produces. | |
| src/ |
Languages | 0 | 0 | The value type the GLSL interpreter is generic over, so that one interpreter serves both the Float reference path and the differentiable one. |
|
| src/ |
Languages | 23 | 12 | The value model for the GLSL-subset interpreter behind StackSL's CPU backend. | |
| src/ |
Graphics | 6 | 6 | The optional gltfpack step between a GLB and the disk. | |
| src/ |
Graphics | 17 | 17 | Skeletal animation on the CPU: bones, joint palettes and linear blend skinning, for a rigged file loaded through Assimp. | |
| src/ |
Math | 6 | 6 | Gaussian-process regression of a scalar field sampled at Vec2 or Vec3 points. |
Drawing with Gaussian processes |
| src/ |
Math | 15 | 15 | Choosing GP hyperparameters from data by maximising the log marginal likelihood. | Drawing with Gaussian processes |
| src/ |
Math | 15 | 15 | A finite joint Gaussian over a set of query points: mean, covariance, and correlated samples. | |
| src/ |
Math | 23 | 23 | Covariance functions for Field's Gaussian processes, and the GpKernels catalogue of standard ones. |
|
| src/ |
Math | 30 | 30 | Bayesian optimisation over named, bounded parameters: a GP surrogate proposes the next point to try, and you report what it scored. | Tuning by Gaussian process: optimisation and A/B preference |
| src/ |
Math | 17 | 17 | Sample paths drawn from a Gaussian process: functions you can evaluate anywhere, consistently, after the draw. | Drawing with Gaussian processes |
| src/ |
Math | 18 | 18 | Preference learning from pairwise "A or B?" judgements, using a probit GP over a latent utility. | |
| src/ |
Math | 7 | 7 | Bridges from the Smile library into Field's Gaussian processes: a Smile kernel as a GpKernel, and Smile's bounded L-BFGS optimizer for fitting hyperparameters. |
Drawing with Gaussian processes |
| src/ |
Graphics | 0 | 0 | ||
| src/ |
Graphics | 21 | 19 | A uniform spatial grid over a particle buffer, rebuilt on the GPU each frame with GpuRadixSort, so a compute shader can find a particle's neighbours by visiting nearby cells. |
|
| src/ |
Examples | 2 | 1 | ||
| src/ |
Examples | 2 | 1 | ||
| src/ |
Graphics | 36 | 34 | Runs a compute shader against fixture buffers, checks that it ran, and compares its read-back output with stated bounds. | |
| src/ |
Examples | 2 | 1 | ||
| src/ |
Graphics | 14 | 2 | A stable GPU radix sort of uint keys in storage buffers, with an optional uint payload carried along. |
|
| src/ |
Graphics | 52 | 50 | GpuSchema derives a std430 memory layout from an annotated Kotlin class, packs instances of it into buffers, and emits the matching GLSL struct and buffer_reference declarations. |
GPU schemas |
| src/ |
Examples | 7 | 2 | ||
| src/ |
Examples · internal | 4 | 1 | ||
| src/ |
Graphics | 14 | 1 | An editable render-to-texture teacher next to a learner that trains on the GPU while it runs. | |
| src/ |
Graphics | 12 | 5 | On-GPU training of the learned RGB function, with no CPU image or weight readback. | |
| src/ |
Graphics | 2 | 0 | ||
| src/ |
Graphics | 40 | 35 | Skinning in the vertex shader: one mesh, one draw call, and a crowd of characters each posed differently. | |
| src/ |
Graphics | 3 | 1 | A program that draws GPU-skinned characters through the real Vulkan path and writes the frames out as PNGs, each one paired with a CPU-skinned frame of the same pose. | |
| src/ |
Examples | 3 | 2 | ||
| src/ |
Math | 18 | 18 | Vector-valued Gaussian processes with separable covariance, for fitting curves and fields whose outputs are several coordinates. | |
| src/ |
Graphics | 82 | 52 | Self-contained graph / computational-geometry library over 2D and 3D point sets (Vec2/Vec3). |
Neighbours and graphs on a point cloud, Points into structure — Voronoi, Apollonius, contours and clusters |
| src/ |
Examples | 2 | 1 | ||
| src/ |
Examples · internal | 3 | 1 | ||
| src/ |
Data | 96 | 43 | A reflective, XPath-style query layer over arbitrary live object graphs. | Querying object graphs, Visualizers, Displays, and Little Instruments |
| src/ |
Data · internal | 3 | 1 | Smoke test for the reflective path layer in afield.data.query.graph, the XPath-style query engine over arbitrary live object graphs. |
|
| src/ |
Graphics | 7 | 2 | Mesh groups: lists of meshes that share one live push-constant binding. | |
| src/ |
Data | 14 | 8 | A 3-regular graph that grows by local rewriting. | |
| src/ |
Examples | 20 | 0 | ||
| src/ |
Machine learning | 14 | 6 | Guided sampling for a learned pen: the pen proposes several next points and a PenGuide picks one. |
A pen that sees |
| src/ |
Visualization | 1 | 1 | .h2 adapters for the Field types where the reflective default in H2Reflect.kt reads badly. |
|
| src/ |
Workspace · internal | 1 | 0 | ||
| src/ |
Visualization | 0 | 0 | The reflective half of .h2: what a domain object's children are, computed once and shared by every surface that shows them. |
|
| src/ |
Audio | 4 | 3 | Lifetime management for Steam Audio native objects: SteamAudioObject wraps a reference-counted handle, releases it once on close, and keeps a cleaner as a backstop for objects that are dropped without closing. |
|
| src/ |
Imaging | 13 | 4 | The hardware optical-flow backend, which drives the VK_NV_optical_flow engine on NVIDIA Ada and later GPUs. | |
| src/ |
Synthesis | 27 | 20 | Pitch and phase tracking for harmonically rich monophonic input, through HarmonicPhaseTracker. |
|
| src/ |
Graphics | 4 | 4 | A RenderToTexture owner that modules can be attached to as if it were the target itself. |
|
| src/ |
Machine learning | 15 | 7 | Hatching around a drawing with a sensing pen: every stroke of the drawing gets passes of the pen's own trembling line laid beside it, which keep clear of the other strokes and of the hatching already done. | |
| src/ |
Imaging | 26 | 5 | A Chromium tab with the full browser control plane and no picture, for driving or scraping a page from a box without a renderer. | |
| src/ |
Examples | 4 | 3 | ||
| src/ |
Patterns | 24 | 16 | The seam between a tracked head and patSpatial's listener. |
A pattern in space: pat → Dough → Steam Audio |
| src/ |
Patterns · internal | 2 | 1 | The listener half of patSpatial's audio check: the pattern holds still and the head moves. |
|
| src/ |
Visualization | 6 | 6 | A rectangular array of numbers as a colour-mapped picture in a box output, in one call. | |
| src/ |
Workspace · internal | 30 | 15 | A document's version history on disk: listing, diffing, searching, naming and restoring the saved versions under its backups/ folder, plus the RPC handlers behind the history browser. |
|
| src/ |
Examples · internal | 2 | 0 | ||
| src/ |
Workspace · internal | 9 | 1 | Per-version activity and screenshot records for a document, stored in its history_metrics.edn beside metadata.edn. |
|
| src/ |
Workspace · internal | 2 | 0 | ||
| src/ |
Languages | 31 | 31 | How a FieldML box calls Kotlin: hostCall, hostNew and hostGet all arrive here, and so does a .field read on a host value. |
|
| src/ |
Languages | 31 | 19 | The reflection behind FieldML's host types: what a THost names, and what can therefore be said at type-check time about a member's type, a resolved overload's result, the parameter slots a call's arguments land in, and the members a receiver actually has. |
|
| src/ |
Audio | 4 | 2 | The head-related transfer function that binaural rendering filters through: one Hrtf per context, shared by every BinauralEffect and kept open longer than all of them. |
|
| src/ |
Examples | 1 | 1 | ||
| src/ |
Graphics | 0 | 0 | Native binding for XR_HTC_eye_tracker, which Field's LWJGL version does not generate. |
|
| src/ |
Graphics | 16 | 15 | The hyperbezier curve family, ported from Raph Levien's hyperbezier (linebender.org/blog/hyperbezier/, August 2026); fitHyperbezierCubics is what draws one into an FLine. |
|
| src/ |
Machine learning | 7 | 2 | The entry points an editor or chat panel calls to run one AI4 turn against a box's code. | |
| src/ |
Graphics | 21 | 14 | Image wraps a VkImage and its memory, created from an Image.ImageData description, including the external-memory exports used to hand frames to other processes. |
|
| src/ |
Graphics | 4 | 3 | Maps Field's logical image layouts to the layout handed to Vulkan, collapsing to GENERAL when the driver supports VK_KHR_unified_image_layouts. |
|
| src/ |
Graphics | 9 | 8 | Reduces an image to global summary statistics on the GPU in two compute passes. | |
| src/ |
Examples | 5 | 3 | ||
| src/ |
Graphics | 19 | 10 | ImageView wraps a VkImageView over an image, and the small interfaces Field's shader bindings use to find views and samplers. |
Field 4 Graphics |
| src/ |
Imaging | 76 | 69 | CPU image and computer-vision family for the Field stdlib: the raster counterpart to the time-domain timeseries.kt and frequency-domain spectral.kt families. |
Imaging and computer vision, Visualizers, Displays, and Little Instruments, Wave Function Collapse examples |
| src/ |
Imaging | 61 | 60 | Edges, corners, lines, blobs and morphology for Img — the "find things in the picture" half of the stdlib imaging family (see imaging.kt for the value type and imaging_filters.kt for convolution and gradients). |
Imaging and computer vision, Visualizers, Displays, and Little Instruments, Agent transcript gallery |
| src/ |
Imaging | 21 | 21 | What makes the imaging family Field's rather than a generic CV library: the bridges out of the raster and into the things Field already draws, colours and displays. | Imaging and computer vision, Wave Function Collapse examples, Spatial artificial life |
| src/ |
Imaging | 65 | 61 | Convolution, smoothing, gradients and multiscale pyramids for Img — the filter half of the stdlib imaging family (see imaging.kt for the value type, imaging_features.kt for edges, corners and blobs). |
Imaging and computer vision, Visualizers, Displays, and Little Instruments, Agent transcript gallery |
| src/ |
Imaging | 63 | 60 | Geometry and motion for Img: affine and perspective warps, homography estimation from point correspondences (DLT + RANSAC), and pyramidal Lucas–Kanade optical flow. |
Imaging and computer vision, Visualizers, Displays, and Little Instruments |
| src/ |
Imaging | 1 | 1 | Drawing FLines into an Img, in software and without AWT. |
|
| src/ |
Imaging | 0 | 0 | The SIMD span kernels the imaging filters are built out of. | |
| src/ |
Examples | 7 | 5 | ||
| src/ |
Visualization | 4 | 4 | Inline visualizers for the CPU imaging and computer-vision family (afield.stdlib/imaging*.kt): what a gradient, a pyramid, a flow field or a list of corners looks like when a box evaluates one. |
|
| src/ |
Graphics | 11 | 7 | A world-space rectangle that shows an ImGuiRenderToTexture in VR and turns controller rays into ImGui pointer input. |
|
| src/ |
Graphics | 19 | 10 | Draws Dear ImGui (through imgui-java) into a Field render-to-texture target, so an ImGui interface can be shown as a texture on any surface, including a panel in VR. | |
| src/ |
Examples | 3 | 2 | ||
| src/ |
Examples | 6 | 0 | ||
| src/ |
Examples | 15 | 6 | ||
| src/ |
Examples · internal | 1 | 1 | ||
| src/ |
Workspace · internal | 14 | 8 | Finds which classes a bare name could mean, so Field can write the import line for it. |
|
| src/ |
Workspace · internal | 4 | 4 | Server handlers that import boxes from a dropped metadata.edn or Jupyter notebook, and export Python cells back to .ipynb. |
|
| src/ |
Math | 59 | 31 | Playing a sequence memory back as a new performance: when to leave the passage being played, how to join the next one, and how to tell whether what came out still resembles the recording. | Continuing a Gesture: Sequence Memory and Forecasting |
| src/ |
Languages | 5 | 5 | FieldML's type checker: a Hindley-Milner inference pass over the surface tree, producing the typed tree the lowerer consumes. | |
| src/ |
Machine learning | 101 | 39 | A small eval suite for Field's own agent: seventeen tasks (five graded by pixels, three made of many similar calls that a tool program does in one, two that are several turns of one conversation), each a goal, the setup it starts from, checks that decide it, and a scripted solution. | |
| src/ |
Workspace · internal | 29 | 0 | A two-way debug inspector for a box: Box.inspect shows a set of objects in an iframe at /inspect and lets the page edit their fields. |
|
| src/ |
Graphics | 5 | 1 | The Vulkan instance: SDK and driver selection, layers, extensions and the debug messenger. | |
| src/ |
Machine learning | 9 | 4 | The instruction text AI4 sends the model with each turn, per kind of turn. | |
| src/ |
Visualization | 209 | 207 | Interaction nets as a live-codeable medium: a graph whose nodes rewrite each other wherever two of them touch principal port to principal port, with a DSL for building nets, a rule language for the rewrites, a scheduler that decides which collision fires next, and a force-directed layout so you can watch it happen. | Interaction Nets examples, A λ-term you can hear |
| src/ |
Examples · internal | 3 | 0 | ||
| src/ |
Solvers | 43 | 43 | The mutable, reuse-oriented half of the Ceres solver API, for solving the same program over and over at interactive rates. | |
| src/ |
Math | 11 | 11 | smoothTo wraps a target-producing lambda so that reading it eases toward the target instead of jumping to it. |
Values over time: interpolants & keyframes |
| src/ |
Workspace · internal | 3 | 2 | Restores SIGINT handling so kill -INT and Ctrl-C shut Field down cleanly even when the JVM inherited SIGINT as ignored. |
|
| src/ |
Visualization | 16 | 4 | Pictures of what interval arithmetic proved about a function: Functions.Fn.intervalPicture draws the search enclosures and certified bounds behind a sampled curve, and Box.showIntervals displays one in a box's output. |
Proving a Function's Range |
| src/ |
Graphics | 47 | 42 | Reflection of a compiled shader's interface: the uniform blocks, storage buffers, textures, images, acceleration structures and push constants it declares, with their sets, bindings, member offsets and sizes. | |
| src/ |
Graphics | 9 | 3 | IOSurfaceHostBuffer maps an IOSurface's memory into a Vulkan buffer, so pixels move between an IOSurface and a Vulkan image with one GPU copy on macOS drivers that cannot back an image with an IOSurface. |
|
| src/ |
Simulation | 20 | 20 | Iterated systems: many particles, each stepped by the same rule every frame and plotted after every step, so their visits pile up into the shape the rule keeps returning to — the chaos game behind an IFS fern, the flow of a strange attractor, a fractal flame. | |
| src/ |
Workspace | 14 | 2 | The JDI probe helper: a separate JVM that attaches to Field over JDWP and samples a variable at a source line. | |
| src/ |
Audio AI | 3 | 3 | The job monitor: the service's own live view of every durable job, embedded in a box output. | Beat and pitch analysis, Corpus microscope: from recordings to related windows, Short-time spectral spaces |
| src/ |
Simulation | 21 | 21 | Walls for what the camera can see: six static Jolt planes, kept on the view frustum as it moves. | |
| src/ |
Simulation | 0 | 0 | Wireframes for the Jolt collision shapes: what JoltPhysicsWorld.debugWireLines3D is made of. |
|
| src/ |
Simulation | 2 | 2 | Getting the jolt-jni native library loaded, which has to happen once per JVM before any Jolt call. | |
| src/ |
Examples | 13 | 0 | ||
| src/ |
Simulation | 116 | 35 | Rigid bodies in three dimensions, from the Jolt physics engine: the 3D counterpart to Dyn4jScene, and a different tool from SimdVerlet, which has no notion of a rigid body at all. |
|
| src/ |
Data | 32 | 1 | A TCP listener that turns newline-delimited JSON into a value a box can read each frame. | |
| src/ |
Examples · internal | 3 | 0 | ||
| src/ |
Data | 18 | 12 | Two related things: a small hand-written JSON reader, and a macro that generates a typed parser from a terse schema. | |
| src/ |
Data | 14 | 0 | Runs an external command and reads newline-delimited JSON from its stdout. | |
| src/ |
Examples · internal | 3 | 0 | ||
| src/ |
Workspace | 0 | 0 | The stack-sampling half of the profiling panel: a JFR recording that runs alongside a coroutine capture, read back as frames, samples and the source each frame came from. | |
| src/ |
Workspace · internal | 4 | 3 | A check over the repository's .kt files under src/ (not src/personal/) for KDoc blocks that would publish against the wrong declaration. |
|
| src/ |
Workspace · internal | 9 | 3 | Reads the KDoc comments out of a Kotlin source file and attaches each one to the declaration below it. | |
| src/ |
Graphics | 12 | 11 | Keyboard camera controls for a Vulkan window. | Field 4 Graphics |
| src/ |
Graphics | 10 | 5 | Keyboard handlers for a Vulkan window, polled with the renderer. | |
| src/ |
Visualization | 64 | 48 | Reading a collection of saved keys the way KeyframeScope reads one: a glob of key files in, a slot-major summary out. |
|
| src/ |
Workspace · internal | 2 | 1 | The server half of the keyframe collection browser: one /ws raw channel, no new HTTP route. |
|
| src/ |
Graphics | 68 | 67 | Blending two code keyframes by finding the structure they share and interpolating the numbers they do not. | Keyframes: capturing, persisting and replaying live state |
| src/ |
Graphics | 13 | 10 | Visualizers, Displays, and Little Instruments | |
| src/ |
Graphics | 22 | 22 | Custom key types for the keyframe editor that keyframes(...) opens: a named segment shape, written as a Kotlin lambda. |
|
| src/ |
Graphics | 91 | 90 | Snapshot, interpolate and persist the live state of a running sketch. | Keyframes: capturing, persisting and replaying live state, Values over time: interpolants & keyframes |
| src/ |
Graphics | 51 | 34 | Keyframe curves edited by hand in a box's output panel and read back by code as a number at any time. | The keyframe editor: drawing a value over time, Agent transcript gallery |
| src/ |
Graphics | 110 | 88 | Overnight exploration of a keyframe space: a directory of saved keys in, an archive of renders out. | Sweeping saved keyframes overnight |
| src/ |
Graphics | 4 | 4 | The GPU half of a keyframe sweep: turning one blended look into the still and the short clip that a night's archive is actually made of. | Sweeping saved keyframes overnight |
| src/ |
Examples | 6 | 5 | ||
| src/ |
Graphics | 0 | 0 | ||
| src/ |
Graphics | 10 | 9 | The key types every keyframe editor offers beyond its five built-in ones: the easing family, splines that look past the segment to the keys either side, shapes, and shaped noise. | |
| src/ |
Workspace | 5 | 3 | The compatibility route for a project that already has its own launcher, workspace and document conventions and wants to appear in Welcome's kit library without adopting Field's. | |
| src/ |
Workspace | 3 | 3 | A document copied from a kit's starting point runs its roles, in the kit's launch order, the first time it opens, so it does something without field_kit.py activate. |
|
| src/ |
Workspace | 25 | 25 | A document copied from a kit's starting point, the record of what it received, and the three-way comparison that updates it. | |
| src/ |
Workspace | 50 | 50 | The registry of kit packages installed on this machine, and the immutable snapshot each registration copies out of a package's source folder. | |
| src/ |
Workspace | 4 | 2 | Builds the classpath a kit needs before stopping the Field that asked for it, so a build that fails leaves Welcome running and able to say why. | |
| src/ |
Workspace · internal | 3 | 3 | The HTTP surface behind Welcome's kit library, one route per action that panel offers. | |
| src/ |
Workspace | 16 | 16 | Loads each installed kit runtime once per host, then attaches and detaches documents against it. | Kits and Starting Points |
| src/ |
Workspace | 25 | 21 | Kits package the shared parts of one kind of document so many documents can be installed from, and migrated to, the same source. | |
| src/ |
Machine learning | 4 | 0 | The AI4 tool that reports which kit a document runs and which of its kit-provided properties and assets have drifted from the kit. | |
| src/ |
Workspace | 0 | 0 | Short names for the numbers of a program, like wave drift speed or star brightness, for the sliders of a study card, written by Field's fast model from what the compiler already knows. |
|
| src/ |
Workspace · internal | 3 | 1 | Smoke test that a box compiles Kotlin 2.4 syntax: collection literals, positional destructuring with square brackets, and name-based destructuring with renamed entries. | |
| src/ |
Workspace · internal | 0 | 0 | ||
| src/ |
Workspace · internal | 2 | 1 | ||
| src/ |
Workspace · internal | 2 | 1 | ||
| src/ |
Workspace · internal | 33 | 4 | The older K1 implementation of KotlinScriptEngine, built on the K1 REPL compiler. |
|
| src/ |
Workspace · internal | 45 | 11 | The K2 implementation of KotlinScriptEngine: the engine that compiles and runs a box's Kotlin. |
|
| src/ |
Examples | 2 | 1 | ||
| src/ |
Languages | 12 | 0 | SPIKE — a "Kotlin in the head" main language. | |
| src/ |
Languages | 82 | 23 | One source of truth for a Kotlin/JS façade surface. | |
| src/ |
Examples · internal | 2 | 1 | ||
| src/ |
Examples · internal | 2 | 1 | ||
| src/ |
Examples | 2 | 1 | ||
| src/ |
Languages | 29 | 4 | Which remote head a Kotlin/JS box runs on, chosen by a marker on its first line. | |
| src/ |
Examples · internal | 2 | 1 | ||
| src/ |
Examples · internal | 2 | 1 | ||
| src/ |
Examples · internal | 2 | 1 | ||
| src/ |
Examples · internal | 2 | 1 | ||
| src/ |
Languages | 3 | 3 | The source map of a Kotlin→JS box's compiled module, remembered per box so that output arriving after the run can still be given a line. | |
| src/ |
Examples · internal | 2 | 0 | ||
| src/ |
Examples · internal | 2 | 1 | ||
| src/ |
Workspace · internal | 2 | 2 | Line notes for a Kotlin box: each top-level val or var a run declared, and the value it held when the run finished. |
|
| src/ |
Workspace · internal | 91 | 23 | The common interface every box's Kotlin engine implements, and the shared pieces both engines use. | What's new, Running code in a box, Agent transcript gallery |
| src/ |
Workspace · internal | 32 | 5 | An on-disk index of the Kotlin definitions (top-level, nested and extension) under Field's source roots, with each one's KDoc and completion category, which completion looks up by symbol name. | |
| src/ |
Workspace · internal | 9 | 9 | Cuts a Kotlin source file into an ordered tree of line spans that tiles the file exactly. | |
| src/ |
Examples | 2 | 1 | ||
| src/ |
Languages | 7 | 4 | SPIKE — Kotlin source -> JavaScript, for RemoteJS boxes. | |
| src/ |
Examples | 2 | 1 | ||
| src/ |
Simulation | 6 | 6 | The two Kratos smoke runs, and the small piece of geometry they share. | |
| src/ |
Simulation | 10 | 7 | Where the Kratos worker process comes from, and which end of the socket Field owns. | |
| src/ |
Simulation · internal | 0 | 0 | ||
| src/ |
Simulation | 68 | 20 | The JVM side of the Kratos link: finding a worker, opening a session on it, and asking for solves. | Filling a solid: tetrahedral meshing with TetGen |
| src/ |
Simulation | 77 | 35 | Run one Kratos session many times over a declared design space, and compare the answers. | |
| src/ |
Simulation | 12 | 12 | A StudyLandscape and a StudyOptimisation, as a picture. |
|
| src/ |
Simulation | 21 | 14 | One parameter study over a heated part, in the three sizes a demo has to exist in. | |
| src/ |
Workspace | 3 | 3 | A macro that labels a function's positional arguments with their own source text, so showMeshGrid(cube, ring) compiles as showMeshGrid("cube" to cube, "ring" to ring). |
|
| src/ |
Examples | 2 | 1 | ||
| src/ |
Examples | 5 | 3 | ||
| src/ |
Patterns | 31 | 29 | A λ-term's reduction as a rhythm — the schedule, not the answer. | |
| src/ |
Examples | 11 | 11 | ||
| src/ |
Visualization | 31 | 31 | λ-terms as a front end to the interaction nets in interactionnets.kt: text in, a reduced net out, a term back. |
|
| src/ |
Examples · internal | 3 | 1 | ||
| src/ |
Workspace | 4 | 4 | The roots of the small languages that draw in a window — RectSL and StackSL — made and given a window by the language, so that starting one takes a command rather than Kotlin. | |
| src/ |
Workspace | 3 | 1 | Shared machinery for a language runtime that converts a language root's children to its own execution. | |
| src/ |
Workspace | 34 | 5 | The text conventions of the languages a box property can hold: each LanguageSpec says how to wrap a property's source before it is compiled and how to unwrap it again. |
|
| src/ |
Workspace | 8 | 8 | The record of what each line of a box produced on its last run, read back as line notes for Forth, Clojure and Python. | |
| src/ |
Workspace | 8 | 2 | Where a Field server's own time goes during the moments someone is waiting on it. | |
| src/ |
Synthesis | 3 | 3 | + for the audio return values, so one box can launch more than one thing. |
|
| src/ |
Visualization | 10 | 10 | The lazy half of value display: rather than inline a large structure, show one summary line plus links into the server-side browsers. | |
| src/ |
Graphics | 16 | 3 | Runs a trained shader function as a compute pass that writes its own render target. | |
| src/ |
Graphics | 2 | 0 | ||
| src/ |
Math | 19 | 2 | A Levenberg–Marquardt nonlinear least-squares solver, pure Kotlin and self-contained. | |
| src/ |
Examples · internal | 3 | 0 | ||
| src/ |
Visualization | 2 | 2 | A reset button for a lesson: capture a box's source before an audience changes it, and restore it from a later slide. | |
| src/ |
Languages | 5 | 5 | FieldML's first stage: source text in, a flat list of Tokens out, and a diagnostic for anything that could not be read. |
|
| src/ |
Examples | 0 | 0 | ||
| src/ |
Workspace | 28 | 13 | The ledger of everything a box has registered with a longer-lived subsystem, and the handles that release it. | |
| src/ |
Graphics | 0 | 0 | How long a lighting pass took on the GPU, timed per swapchain image. | |
| src/ |
Math | 37 | 37 | The short names for Field's vector and rotation types (Vec2, Vec3, Vec4, Quat, DualQuat) and the vec, quat and dualquat constructors that build them. |
FLine examples (Field graphics), A Drawn Morph, Heard, Datalog in a box |
| src/ |
Math | 1 | 1 | The 3D convex hull of a list of Vec3, computed with the QuickHull3D library. |
|
| src/ |
Math | 48 | 39 | What a collection of points adds up to: centroids, outlier-resistant centres, and the bounding boxes that enclose them. | |
| src/ |
Examples | 2 | 0 | ||
| src/ |
Workspace · internal | 22 | 1 | JSON serializers for Field's vector and quaternion types, and the FieldJson instance that uses them. |
|
| src/ |
Examples · internal | 3 | 0 | ||
| src/ |
Workspace | 5 | 5 | Java2D drawings of a stack or a relation, sized for a line note. | |
| src/ |
Workspace | 9 | 9 | Line notes: the sentence, and sometimes a picture, that the editor shows for one line of a box's program. | |
| src/ |
Workspace | 11 | 5 | The AI tool that lets a chat read a program's line notes: ReadLineNotes asks for the notes on some lines of the focused box's property, and readLineNotes answers with text and pictures. |
|
| src/ |
Graphics | 11 | 7 | LinuxDmaBufExport exports Vulkan images as Linux dma-bufs described by a DRM format modifier, so another process (such as Electron) can import them without a copy. |
|
| src/ |
Imaging | 2 | 1 | A standalone Linux probe that hands Electron one finished Vulkan image and reads back its verdict on the pixels. | |
| src/ |
Imaging | 3 | 1 | The Linux browser-frame receiver, which imports Electron's dma-buf frames into Vulkan. | |
| src/ |
Examples | 2 | 1 | ||
| src/ |
Visualization | 14 | 11 | Script access to the iframe inside a box's output area as the Electron tab shows it: outputIframe resolves a box and channel to a LiveOutputIframe, whose calls (JavaScript evaluation, raw CDP, navigation) return futures so the runloop is not blocked while the tab answers. |
|
| src/ |
Workspace | 4 | 1 | Field's side of the JDI probe helper: LiveProbeClient starts the helper process, sends it probe requests and routes each response to the listener registered for its request id. |
|
| src/ |
Examples | 2 | 1 | ||
| src/ |
Workspace | 54 | 23 | The standard study verbs, and the tools that offer them to an AI4 agent: inspect, edit, patch, set numbers, observe, compare, sweep, try variants, adopt a variant and restore a revision. | Studies |
| src/ |
Machine learning | 17 | 5 | The interface the IDE agent loop talks to, with one implementation per provider. | |
| src/ |
Graphics | 15 | 15 | Reads one element of a PLY file as a flat table of floats, addressed by property name. | |
| src/ |
Machine learning | 0 | 0 | The connection check behind the local-model panel on Field's welcome page. | |
| src/ |
Machine learning | 0 | 0 | Recovery from a local model that cannot fit the conversation: when a self-hosted, OpenAI-compatible provider rejects a request for exceeding its context window, Field shortens the history and retries rather than failing the turn. | |
| src/ |
Machine learning | 0 | 0 | ||
| src/ |
Workspace | 9 | 2 | The lprintln / lprint / lblock logging calls, which send a message to the server log on a named channel such as "info,startup". |
Logging: channels, sinks and the console |
| src/ |
Machine learning | 36 | 4 | The channel-tagged log events the AI tooling writes, and the sinks that receive them. | Logging: channels, sinks and the console, Visualizers, Displays, and Little Instruments, Agent transcript gallery |
| src/ |
Workspace · internal | 14 | 1 | The log archive behind the /logs iframe: LogStream keeps recent log records (still printing them to stdout) and streams them to the page. |
|
| src/ |
Audio | 42 | 18 | Loris reassigned-bandwidth-enhanced analysis and resynthesis, run as an optional native process. | Loris: partial tracks and resynthesis |
| src/ |
Audio | 15 | 4 | The fixture that renders the audio and figures on the Loris docs page from a committed film-dialogue recording. | |
| src/ |
Audio | 1 | 1 | One worked Loris gesture, written in the same breakpoint arithmetic that LorisTransforms.kt applies one edit at a time. | |
| src/ |
Audio | 18 | 10 | Kotlin-side edits of a LorisModel: filtering partials, transposing, stretching, tilting and cropping. |
Loris: partial tracks and resynthesis, Corpus microscope: from recordings to related windows, Gesture board: drawing toward a sound |
| src/ |
Visualization | 11 | 5 | Draws a LorisModel's partial trajectories as an interactive HTML panel next to its waveform. |
Loris: partial tracks and resynthesis |
| src/ |
Languages | 2 | 2 | The last stage of the FieldML front end: the typed tree becomes the CoreExpr tree the evaluator walks. |
|
| src/ |
Graphics | 29 | 11 | Fits a point sequence with as few line and arc segments as its error budget allows. | |
| src/ |
Graphics | 24 | 23 | The central-path fan as a map from the (θ, log μ) plane into a polygon. | Linear programs as curves |
| src/ |
Graphics | 51 | 49 | The three-dimensional companion of lp_trajectories.kt: the same linear-programming methods, as curve generators, on a convex polytope { x : nᵢ·x ≤ bᵢ } in space. |
Linear programs as curves |
| src/ |
Graphics | 46 | 46 | Linear-programming algorithms on a convex polygon, used as curve generators. | Linear programs as curves |
| src/ |
Machine learning | 16 | 16 | LPIPS: how different two pictures look, as a learned perceptual distance. | |
| src/ |
Machine learning · internal | 2 | 1 | ||
| src/ |
Networking | 28 | 17 | Linear timecode as audio: LtcEncoder renders SMPTE LTC frames to samples, LtcDecoder reads them back from a live or recorded signal, and TimecodeWav writes and reads the mono .wav files LTC usually travels in. |
SMPTE Timecode: LTC and MIDI Time Code |
| src/ |
Languages | 5 | 5 | The signatures and one-line descriptions that completion shows for Lua names, held to a live LuaJIT by LuaCatalogTest. |
|
| src/ |
Languages | 16 | 5 | Lua as a Field box language: LuaExecution runs a box's text in that box's own LuaJIT state, and installLuaLanguage registers Lua as a Main Language. |
|
| src/ |
Languages | 7 | 7 | Loading LuaJIT and binding its C API: LuaLibrary finds the optional native library, and the FFM downcalls that LuaState uses are bound here. |
|
| src/ |
Languages | 20 | 20 | The LuaJIT state behind a Lua box: LuaState opens a lua_State, runs chunks under lua_pcall, and marshals values between Lua and Kotlin. |
|
| src/ |
Imaging | 4 | 1 | The macOS browser-frame receiver, which imports Electron's IOSurfaces into Vulkan. | |
| src/ |
Graphics | 2 | 1 | Enables Extended Dynamic Range (EDR) on the macOS CAMetalLayer that backs the GLFW/MoltenVK window. | |
| src/ |
Workspace · internal | 0 | 0 | The code a replayed execute / launch op runs, and where in the box it sits. |
|
| src/ |
Workspace | 40 | 12 | The call-rewriting macro pass that box code goes through before it compiles: a call such as prop(...), moduleHere(...) or _println(...) is replaced by source text generated for the box that contains it. |
Running code in a box |
| src/ |
Graphics | 50 | 49 | The buffer DSL: buffer and defaultBuffer build a BufferParameters that says how a Vulkan buffer is sized, placed in memory and used. |
|
| src/ |
Workspace | 12 | 2 | The registry that lets a box choose the language its children run in, such as Python instead of Kotlin. | |
| src/ |
Graphics | 5 | 5 | Checks every FFM descriptor ManifoldNative binds against the prototypes in the installed manifoldc.h, and against the structs and enums in its types.h. |
|
| src/ |
Internal · internal | 22 | 16 | The FFM binding to libmanifoldc that Solid and Section are built on, plus the small public enums they take. |
Solids that cannot fail: Manifold in Field |
| src/ |
Graphics · internal | 2 | 1 | ||
| src/ |
Graphics | 14 | 5 | Keyed collections of running sequences that a host steps once per frame. | |
| src/ |
Graphics | 23 | 14 | Mapper: a graph that summarises the shape of a point cloud, in any number of dimensions. | Mapper graphs of point clouds |
| src/ |
Patterns | 110 | 67 | Function generation over the pattern language: stored material, a trajectory that reads it, and the timing of that traversal, kept as three separate patterns. | A pattern as a function generator |
| src/ |
Patterns | 11 | 8 | Headless figure gallery for the function-generation layer in Marf.kt, and the check that every figure on marf.md is a measurement of the reader it claims to draw. |
|
| src/ |
Patterns · internal | 2 | 1 | The worked example for Marf.kt, and the check that it holds together: one bank, several readers, and what each reader is doing printed as text. |
|
| src/ |
Patterns | 22 | 4 | MarfSpace instances for Field's generated linalg vectors, so a reader can emit a position, a colour or a set of material parameters instead of one number. |
|
| src/ |
Visualization | 1 | 1 | ||
| src/ |
Machine learning | 0 | 0 | Markdown cut into the pieces semantic search indexes and an embedder can read whole. | |
| src/ |
Visualization | 11 | 11 | Markdown output for box output areas: markdown renders GitHub-flavoured markdown, with raw HTML, side-by-side :::row columns and {role:text} spans, into a styled card using Field's design tokens. |
Visualizers, Displays, and Little Instruments, Measuring dependence between two signals |
| src/ |
Math | 13 | 13 | Number-taking overloads of the trigonometric functions, so sin(1) and sin(1f) work without writing .toDouble() at every call site. |
|
| src/ |
Math | 29 | 25 | Matrix profiles of a single series: for every subsequence, the distance to its nearest neighbour. | Motifs, Discords and Contrast: the Matrix Profile |
| src/ |
Workspace · internal | 10 | 0 | Adds Maven dependencies to the classpath that box code compiles against. | |
| src/ |
Networking | 9 | 4 | A dependency-free multicast DNS and DNS-SD implementation, sized to advertise and find OSCQuery services on the local network. | |
| src/ |
Graphics | 4 | 4 | Small helpers for checking a mesh measurement against a known answer in a box. | |
| src/ |
Simulation | 13 | 3 | The membrane energy and its gradient: Mechanics evaluates film, tape, tether, gravity, ground contact and gas work for one set of node positions under a LoadCase. |
Pressure membranes |
| src/ |
Output | 25 | 25 | A row of input slots for pictures and text, in a box's output: what a program that compares a few things (CLIP embeddings, a style transfer, a classifier) reads its inputs from. | |
| src/ |
Graphics | 82 | 39 | A virtual texture over thousands of source images, paged into a fixed GPU atlas on demand. | |
| src/ |
Graphics | 24 | 14 | The stable image-to-index catalog behind a MegaTexture, and the on-disk pyramid cache keyed to it. |
|
| src/ |
Graphics | 26 | 9 | Background decoding of source images into downsampled MegaTexture pages. |
|
| src/ |
Graphics | 30 | 19 | The atlas geometry and page-table encoding for a MegaTexture, kept free of any GPU calls. |
|
| src/ |
Graphics | 12 | 12 | A directory of images as one texture, however many of them there are. | |
| src/ |
Graphics | 7 | 7 | GLSL snippets that let a box's own shaders sample a MegaTexture. |
|
| src/ |
Graphics | 59 | 53 | TriMesh — the CPU triangle mesh Field's 3D geometry family is built on, plus the builder that makes one and the whole-mesh transforms that move one around. |
Meshes and 3D geometry |
| src/ |
Graphics | 29 | 16 | Mesh is the vertex-buffer draw call of a graphics module: it holds the vertex inputs and push constants the module's shaders declare, and draws them on the Renderer found from context. |
Field 4 Graphics, Field Probes: instrumenting shaders, FieldML's JVM bridge |
| src/ |
Workspace | 2 | 2 | The two calls that find a value somewhere up a box's parent chain: fromContext by type, fromContextWithNameOrNull by name. |
|
| src/ |
Graphics | 33 | 33 | What makes the mesh family Field's rather than a generic geometry library: the bridges out of TriMesh and into the things Field already draws, renders and displays. |
Geometry from disk, Meshes and 3D geometry, Three.js scenes with three { … } |
| src/ |
Graphics | 23 | 23 | Where a TriMesh comes from: the primitives (boxMesh, uvSphereMesh, icosphereMesh, torusMesh, cylinderMesh, coneMesh, capsuleMesh, the five platonics) and the derived generators that build one out of something you already have (extrudeMesh, revolveMesh, tubeMesh, heightfieldMesh, reliefMesh, polygonMesh). |
Meshes and 3D geometry, Three.js scenes with three { … }, A photograph, closed and mounted |
| src/ |
Graphics | 11 | 11 | Getting a TriMesh in and out of the two formats every 3D tool on the machine can already read: OBJ (text, indexed, carries normals and uvs) and STL (ASCII or binary, triangle soup, the lingua franca of 3D printing). |
Geometry from disk, Meshes and 3D geometry, Solids that cannot fail: Manifold in Field |
| src/ |
Graphics | 41 | 41 | Asking a TriMesh questions: how big is it, where is its middle, how curved is it — and, through MeshBvh, what does this ray hit, what is the nearest point on the surface, and is this point inside. |
Meshes and 3D geometry, Three.js scenes with three { … } |
| src/ |
Graphics | 15 | 15 | Changing a mesh's sampling without changing the shape it stands for: normals, subdivision, smoothing and decimation. | Meshes and 3D geometry, Geometry from disk |
| src/ |
Graphics | 78 | 46 | Why a mesh is not a solid, and what can be done about it — the paved road between "I loaded a file" and toSolid(). |
Solids that cannot fail: Manifold in Field, Geometry from disk, Meshes and 3D geometry |
| src/ |
Graphics | 37 | 37 | Modelling with functions: a ScalarField3D is (Vec3) -> Float, the signed-distance primitives and combinators that let you write a shape as an expression, and marchingCubes, which turns any such expression into a watertight TriMesh. |
Meshes and 3D geometry, Three.js scenes with three { … }, Typography as geometry — a string becomes contours |
| src/ |
Graphics | 34 | 34 | What a TriMesh is, as opposed to where it is: adjacency, boundaries, components, manifoldness, orientation, and the Euler characteristic those add up to — plus the repairs (TriMesh.weld, TriMesh.fixWinding, TriMesh.removeDegenerateTriangles) that turn a mesh which fails those checks into one that passes. |
Meshes and 3D geometry, Geometry from disk, Solids that cannot fail: Manifold in Field |
| src/ |
Graphics | 16 | 4 | Two ways of writing vertices into a Mesh, of which one is wired up. |
|
| src/ |
Graphics | 5 | 5 | Connects the loaders that read geometry off disk to the CPU renderer that can look at it. | Geometry from disk |
| src/ |
Examples | 5 | 4 | ||
| src/ |
Graphics | 17 | 3 | The MeshTask interface for issuing mesh-shader work, and MeshMesh, a task whose push constants and uniforms are bound to Kotlin properties by name. |
|
| src/ |
Graphics | 38 | 2 | A task/mesh-shader pipeline as a renderable module: MeshModule compiles and introspects task and mesh shaders and owns their descriptor sets. |
|
| src/ |
Workspace | 9 | 9 | Per-box YAML metadata and the tags read from it. | |
| src/ |
Examples · internal | 2 | 0 | ||
| src/ |
Graphics | 17 | 11 | MetalIOSurface reaches the macOS IOSurface framework from Kotlin, so a Field render-to-texture image can be shared with another process by IOSurfaceID or Mach port. |
|
| src/ |
Graphics | 5 | 5 | Explains shader failures on macOS that come from Metal name collisions rather than from the GLSL. | |
| src/ |
Audio | 81 | 35 | A Standard MIDI File surface for Field. | |
| src/ |
Audio | 52 | 34 | Live MIDI device I/O, and offline rendering of a MidiClip to a WAV through the JDK's own software synthesizer. |
SMPTE Timecode: LTC and MIDI Time Code |
| src/ |
Audio | 18 | 12 | The bridge between the pattern algebra and MidiClip, plus a piano roll drawn as FLines. |
|
| src/ |
Audio · internal | 3 | 3 | Smoke cover for the Standard MIDI File surface: writes a clip, reads it back, exports a pattern, imports one, draws a roll, enumerates devices and opens a real output port. | |
| src/ |
Simulation | 9 | 2 | A sampled check of whether a solved membrane sits at an energy minimum: MinimumSearch estimates the lowest curvature with a finite-difference Lanczos iteration and tries displacements along it and along eight smoothed random directions. |
|
| src/ |
Graphics | 0 | 0 | Hand-rolled bindings for XR_MNDX_xdev_space. |
|
| src/ |
Simulation | 39 | 7 | The input model for the pressure-membrane solver: a closed triangulated Envelope whose triangles each carry a Film, with Tape reinforcements, Tether and Anchor supports, all in SI units. |
Pressure membranes |
| src/ |
Graphics | 67 | 0 | A self-tuning controller for pushing the distribution of a scalar signal towards a target shape. | |
| src/ |
Audio | 14 | 11 | Per-source models for Steam Audio's direct path: DistanceAttenuationModel, AirAbsorptionModel and Directivity. |
|
| src/ |
Graphics | 166 | 14 | The rasterising Module: one graphics pipeline built from vertex/fragment (or task/mesh) GLSL, the Meshes it draws, and the uniforms, textures and push constants bound to it. |
Fabricate Renderer, FieldML's JVM bridge, A solid, written down: afield.lang.solidsl |
| src/ |
Graphics | 5 | 5 | Where a module's drawing ends up, and a picture of it there: the window it is added to, or the render-to-texture that holds it — found by walking what the renderer draws, not by being told. | |
| src/ |
Graphics | 5 | 5 | Told when a module pointer swaps in a rebuilt module (a full shader reload), with the old and new modules' live uniform structures, before the old one is dropped. | |
| src/ |
Languages | 15 | 11 | The grow-and-draw handle: a compiled MorphoHDL circuit that expands a few cells per frame while its layout relaxes between expansions. | |
| src/ |
Workspace · internal | 1 | 1 | Lets a documentation page hold MorphoHDL itself, rather than Kotlin that mentions it. | |
| src/ |
Languages | 12 | 11 | Drawing a MorphoHDL circuit with Field's FLines. | MorphoHDL in Field, Searching for MorphoHDL Circuits |
| src/ |
Languages | 28 | 11 | Where MorphoHDL programs come from when nobody writes them. | |
| src/ |
Languages | 35 | 22 | The thing a search actually mutates: a MorphoHDL program, as text. | Searching for MorphoHDL Circuits |
| src/ |
Languages | 17 | 12 | Hosting MorphoHDL's own compiler: one GraalJS context, one lock, and a growth handle per circuit. | |
| src/ |
Languages | 14 | 6 | Field4 language adapter for MorphoHDL, a Python-syntax hardware-description language. | |
| src/ |
Languages | 10 | 9 | Placement for a MorphoHDL circuit: every active cell gets a 3D position, from a force-directed layout running on morpho's own Barnes–Hut kernel. | |
| src/ |
Languages | 31 | 16 | The compiled circuit as a Kotlin value: packed per-cell metadata, one array per relation, and morpho's own numbering carried across the boundary unchanged. | |
| src/ |
Languages | 19 | 14 | The search problems this layer was built to ask, and how much of the answer each one gives away. | |
| src/ |
Languages | 31 | 19 | Searching the space of MorphoHDL programs for one that computes something. | Searching for MorphoHDL Circuits |
| src/ |
Languages | 11 | 8 | Drawing what a search did, as vector FLines for afield.geometry.spatial.showPlaneGrid. |
Searching for MorphoHDL Circuits |
| src/ |
Languages | 9 | 7 | What a compiled MorphoHDL circuit computes, and how deep it is: a bit-parallel logic simulator, plus the per-cell arrival times morpho's own compiler already hands over. | |
| src/ |
Languages | 48 | 22 | What a MorphoHDL design is supposed to do, and how much it is allowed to cost — the half of a search that morpho itself has no opinion about. | Searching for MorphoHDL Circuits |
| src/ |
Graphics | 48 | 28 | The Morse–Smale complex of a 2-D scalar field: where its peaks, pits and passes are, how they are joined, and which of them are significant. | Morse–Smale complexes: the shape of a scalar field, Tracking features through time and scale |
| src/ |
Graphics | 12 | 3 | Finding field_morse_smale on this machine, and calling into it once found. |
|
| src/ |
Animation | 48 | 6 | ||
| src/ |
Animation | 41 | 17 | Generative Mocap — ARDY and CLoSD | |
| src/ |
Animation | 14 | 3 | ||
| src/ |
Animation | 3 | 1 | ||
| src/ |
Graphics | 2 | 1 | ||
| src/ |
Graphics | 13 | 10 | Per-item motion for 2D items drawn by stable identity, for passes that need each item's previous pose. | |
| src/ |
Animation | 10 | 2 | ||
| src/ |
Animation | 18 | 1 | Generative Mocap — ARDY and CLoSD | |
| src/ |
Animation | 11 | 2 | ||
| src/ |
Animation | 2 | 1 | ||
| src/ |
Animation | 29 | 6 | ||
| src/ |
Animation | 2 | 2 | Generative Mocap — ARDY and CLoSD | |
| src/ |
Graphics | 24 | 15 | Mouse input from a Vulkan renderer's window, delivered to named callbacks. | |
| src/ |
Simulation | 41 | 31 | Springs, dampers, and a steerable character built out of four of them. | Springs, dampers, and a character with mass |
| src/ |
Networking | 29 | 25 | The box-facing MQTT surface: mqtt and mqtt(url) return a BoxMqtt for publishing and subscribing, and mqttBroker(port) starts an embedded broker. |
MQTT: sensors, devices and brokers |
| src/ |
Networking | 12 | 8 | An embedded MQTT 3.1.1 broker, MqttBroker, for talking MQTT inside Field with nothing else installed. |
|
| src/ |
Networking | 50 | 26 | An MQTT 3.1.1 client over plain TCP, MqttClient, with the message, subscription and connection event types it hands back. |
|
| src/ |
Networking | 35 | 17 | The MQTT 3.1.1 wire format: the MqttPacket types, Mqtt.encode and Mqtt.read to convert them to and from bytes, and MqttTopic for topic names and + / # filter matching. |
|
| src/ |
Graphics | 5 | 5 | The Monaco editor language for Metal Shading Language, used by the msl box property. |
|
| src/ |
Examples · internal | 2 | 1 | ||
| src/ |
Networking | 16 | 15 | MIDI Time Code for Field's MIDI ports: Mtc builds quarter-frame and full-frame messages and parses full frames, and MtcDecoder reassembles incoming messages into Timecode. |
SMPTE Timecode: LTC and MIDI Time Code |
| src/ |
Math | 30 | 29 | Matrix profiles across several channels and between two classes of examples, built on the single-series MatrixProfile. |
Motifs, Discords and Contrast: the Matrix Profile |
| src/ |
Graphics | 36 | 15 | Several passes per frame between two images: MultiPingPongRenderToTexture runs an optional init pass, a number of middle passes and an optional final pass, each reading what the last one wrote. |
|
| src/ |
Graphics | 21 | 4 | ||
| src/ |
Audio AI | 20 | 20 | Typed decoder for the versioned note document a multi-instrument transcription job leaves behind. | Multi-instrument transcription with MuScriptor |
| src/ |
Languages | 9 | 9 | Turns Nano assembly source text into a bytecode ByteArray: one pass over the lines emitting bytes, then a patch pass that fills in the labels the first pass left as placeholders. |
|
| src/ |
Languages | 8 | 8 | The host side of nano_compute.glsl, the GLSL compute port of the Nano VM: the buffer layout a caller has to honour, the mapping struct, and the packing helpers for getting bytes in and out. |
|
| src/ |
Languages | 4 | 4 | Reads a Nano bytecode ByteArray back as assembly text, one DisasmLine per instruction. |
|
| src/ |
Languages | 19 | 3 | Field4 language adapter for the Nano 8-bit assembly language. | What a document is on disk |
| src/ |
Examples · internal | 2 | 1 | ||
| src/ |
Languages | 21 | 21 | Runs a Nano program and hands back its final machine state, either as data or as a self-contained HTML panel for a box's output area. | |
| src/ |
Languages | 64 | 8 | Nano is a minimal 8-bit virtual machine designed for emergence and artificial-life simulations: four registers, 32 bytes of RAM, and all but five of the 256 possible opcode bytes decoding to an instruction. | |
| src/ |
Imaging | 0 | 0 | ||
| src/ |
Graphics | 23 | 11 | Which of Field's optional native geometry libraries are installed, and what the welcome page says about the rest. | |
| src/ |
Workspace | 10 | 5 | Nesting: drawing one box inside another, through the nested and nestedIn properties. |
Visualizers, Displays, and Little Instruments |
| src/ |
Workspace · internal | 4 | 4 | Per-second counters of WebSocket traffic between the backend and the browser, shown on the pinned "net" console row. | |
| src/ |
Examples | 2 | 1 | ||
| src/ |
Machine learning | 36 | 33 | Taking a small trained network to the GPU: MlpWeights is a flat, layer-major snapshot of a multilayer perceptron's weights, and MlpWeights.glsl emits a GLSL function that evaluates the same network out of a storage buffer. |
Neural particle systems |
| src/ |
Machine learning | 31 | 31 | A particle system driven by a trained velocity field: ShaderNeuralParticles integrates a buffer of particles along the field in a compute pass and draws the same allocation as points, with no copy between the two. |
Neural particle systems |
| src/ |
Examples | 2 | 1 | ||
| src/ |
Imaging | 2 | 1 | ||
| src/ |
Examples | 8 | 0 | ||
| src/ |
Examples | 8 | 0 | ||
| src/ |
Examples | 8 | 0 | ||
| src/ |
Examples | 8 | 0 | ||
| src/ |
Simulation | 2 | 1 | The optional Newton step that finishes an inflation solve: NewtonPolish takes the positions L-BFGS reached and drives the free-node force residual down further. |
|
| src/ |
Internal · internal | 0 | 0 | ||
| src/ |
Imaging | 9 | 2 | Detection of NVIDIA NGX support and the sizes and modes DLSS reconstruction accepts. | Neural reconstruction, From modules to reconstruction |
| src/ |
Imaging | 5 | 5 | Locates a node binary new enough to run the JavaScript this repository generates, for the tests and tools that shell out to Node. |
|
| src/ |
Visualization | 127 | 73 | The box-facing API for the drawing layer: notation reads the document's Excalidraw scene as Marks, writes marks owned by the box through a notation { } block (NotationBuilder), changes existing ones with Notation.edit, and runs callbacks when a person draws. |
Drawn Strokes Become Paint, Drawing and Notation, A Drawn Score, Heard |
| src/ |
Visualization | 32 | 17 | Cutting the drawing with a line: the geometry behind reading notation by intersection — a vertical line is an instant, a horizontal one a pitch (or whatever a NotationSpace says the axes mean). |
|
| src/ |
Patterns | 7 | 5 | Turns a region of the drawing layer into a pattern: rectangles, level strokes and moving strokes become notes, with x as time and y as MIDI pitch. | A Drawn Score, Heard, A Drawn Morph, Heard |
| src/ |
Visualization | 14 | 6 | The drawing layer's scene as immutable data: NotationScene parses and re-serializes the root box's drawing property, NotationChange describes what differs between two scenes, and MarkType names the Excalidraw element kinds. |
|
| src/ |
Visualization | 3 | 3 | The server end of the drawing layer: installNotationHandlers registers the websocket handlers that receive each client's scene and selection, merge the scene into the document's copy, and pass what a person changed on to the box reactions and to arrow anchoring. |
|
| src/ |
Examples · internal | 2 | 0 | ||
| src/ |
Examples · internal | 2 | 0 | ||
| src/ |
Audio AI | 6 | 6 | A dependency-free reader for the integer NPY tensors the audio service emits — the codec token grids, in practice. | |
| src/ |
Visualization | 10 | 10 | Fixed-point number formatting for string templates: x.f2 is x with two decimal places, from f0 to f9, always with a . decimal point regardless of the machine's locale. |
|
| src/ |
Data | 37 | 32 | Reader for NumPy's .npy and .npz on-disk formats. |
|
| src/ |
Languages | 24 | 17 | Shared memory between Python boxes and Kotlin boxes: images and line sets that numpy writes in place and Kotlin reads without copying through a serializer. | |
| src/ |
Simulation | 10 | 10 | Approximate inverse-square forces over a particle cloud, by summarising distant groups as a single mass each. | |
| src/ |
Polytopes | 1 | 1 | The one-way bridge to OFF, the plain-text polygon interchange format that Geomview and most polyhedron tooling read. | |
| src/ |
Workspace · internal | 1 | 1 | ||
| src/ |
Machine learning | 20 | 15 | ONNX models, running inside Field. | Depth and CLIP: neural vision in a box |
| src/ |
Machine learning · internal | 2 | 1 | ||
| src/ |
Graphics | 9 | 4 | Opaque triangle geometry for ray-query visibility, as used by DirectLighting for shadows. |
Direct lighting |
| src/ |
Machine learning | 61 | 3 | Where Field's AI features find their provider, API key, endpoint and model names. | |
| src/ |
Machine learning | 14 | 3 | The OpenAI implementation of LlmBridge: Field's agent loop over the Responses API. |
|
| src/ |
Internal · internal | 0 | 0 | ||
| src/ |
Graphics · internal | 2 | 1 | ||
| src/ |
Graphics | 10 | 2 | Runs one image file through OpenDlssNrPass and shows the result on screen. |
|
| src/ |
Examples | 2 | 1 | ||
| src/ |
Internal · internal | 0 | 0 | ||
| src/ |
Graphics | 19 | 7 | The Vulkan pass that runs the native neural-rendering (NR) network over a sampled image. | Neural image rendering with OpenDLSS-NR |
| src/ |
Graphics · internal | 2 | 1 | ||
| src/ |
Graphics | 21 | 6 | An editable source image fed through the native neural-rendering (NR) pass, with a graded comparison. | |
| src/ |
Graphics | 3 | 1 | Whether the native neural-rendering (NR) pass can run on this renderer. | |
| src/ |
Examples | 2 | 1 | ||
| src/ |
Internal · internal | 0 | 0 | ||
| src/ |
Graphics | 30 | 30 | Plain state holders for OpenXR eye tracking: the combined gaze of XR_EXT_eye_gaze_interaction and the per-eye gaze, pupil and geometry streams of XR_HTC_eye_tracker. |
|
| src/ |
Graphics | 0 | 0 | ||
| src/ |
Graphics | 49 | 25 | The OpenXR headset as a render target: OpenXRHmdTarget acquires each eye's swapchain image, renders registered modules into it, and submits the frame with a projection layer. |
|
| src/ |
Workspace · internal | 32 | 10 | Records the operations a person or agent performs on a document and replays them as named macros. | |
| src/ |
Examples · internal | 2 | 0 | ||
| src/ |
Examples · internal | 2 | 0 | ||
| src/ |
Imaging | 20 | 6 | A self-contained optical-flow demonstration that renders two warped test images, measures the motion between them, and drives a feedback image with it. | |
| src/ |
Imaging | 18 | 10 | The shared contract for dense optical flow in Field: the OpticalFlowOperation interface, the OpticalFlowBackend choice, and the opticalFlow factory that picks a backend for a renderer. |
Optical flow |
| src/ |
Imaging | 2 | 0 | ||
| src/ |
Graphics | 53 | 49 | Global switches for the Vulkan renderer, mostly read from system properties at startup, and the code that locates the Vulkan loader and driver. | |
| src/ |
Graphics | 26 | 25 | Mouse orbit controls for a Camera in a Vulkan window: rotate, pan and dolly around the camera's target, after Three.js's OrbitControls. |
|
| src/ |
Examples | 1 | 0 | ||
| src/ |
Patterns | 58 | 39 | ORCA, the two-dimensional livecoding sequencer, running in a box output with its notes, control changes, UDP and OSC messages delivered to Kotlin callbacks; start it with orca. |
ORCA |
| src/ |
Patterns | 6 | 5 | Runs ORCA's own operators in the JVM without a browser page, one frame per step, so an ORCA program can be tested or rendered offline. | |
| src/ |
Patterns | 9 | 2 | Offline renders of the ORCA page's two sound examples, with each note placed on the sample its ORCA frame falls on. | |
| src/ |
Audio | 34 | 17 | OSC in and out, wrapped around JavaOSC (com.illposed.osc) and driven from Field's main runloop. |
OSC and TUIO |
| src/ |
Workspace · internal | 4 | 0 | Lets an OSC controller drive the editor by forwarding float, launch and stop messages to the front end as osc-editor commands. |
|
| src/ |
Audio | 20 | 1 | Banks built as arrays of the scalar models: ResonatorBankArray holds one Resonator per frequency and TrackingResonatorBankArray one TrackingResonator, each updated sample by sample. |
|
| src/ |
Audio | 39 | 2 | Scalar, one-object-per-oscillator reference models: Phasor (a complex phasor advanced by multiplication), Oscillator, Resonator and TrackingResonator. |
|
| src/ |
Synthesis | 94 | 39 | The sources: oscillators, noise, and the samplers that stand in for one. | Csound |
| src/ |
Networking | 25 | 20 | The box-facing OSCQuery entry points: Box.oscQuery to publish parameters, Box.oscQueryRemote and Box.oscQueryDiscover to reach other services, and Box.oscQueryMirror to show a remote's namespace as Field controls. |
OSCQuery: controls other tools can find |
| src/ |
Networking | 6 | 3 | Encodes and decodes the OSC 1.0 messages that OSCQuery sends in WebSocket binary frames. | |
| src/ |
Networking | 17 | 5 | The client side of OSCQuery: OscQueryRemote reads another application's namespace over HTTP, sets its parameters over OSC UDP, and follows changes over its WebSocket. |
|
| src/ |
Networking | 29 | 13 | The OSCQuery service Field publishes: a namespace of typed parameters served as JSON over HTTP, set over OSC UDP, and pushed to WebSocket listeners. | OSCQuery: controls other tools can find |
| src/ |
Visualization | 0 | 0 | The panels a live box has shown, kept so that a page attaching after the box ran still sees them. | |
| src/ |
Machine learning | 1 | 1 | ||
| src/ |
Workspace | 7 | 5 | JSON request bindings that let a box's output iframe, or Kotlin code, call a handler on that box over Field's WebSocket. | |
| src/ |
Visualization | 131 | 54 | Output areas and controls for box code: HasOutput and the display channels, progress bars and withProgress, streamProcess for running external commands into a panel, the tree, column and logs embeds, and the controls DSL — slider, checkbox, stringInput, colorPicker, button, controlGroup and syncToProperty. |
Visualizers, Displays, and Little Instruments, Box Output: print, display and channels, The keyframe editor: drawing a value over time |
| src/ |
Graphics | 0 | 0 | Ownership for the modules a box puts into a renderer's target maps, which is what renderer += "name" to module records so that something can take the module out again. |
|
| src/ |
Examples | 1 | 1 | ||
| src/ |
Workspace · internal | 1 | 1 | Filming any web page frame by frame: the page filmer behind film-page on the backdoor. |
|
| src/ |
Graphics | 97 | 95 | PaintCanvas, a simulated oil-painting canvas that FLines are painted and drawn onto, with its statistics (PaintStats, PaperInfo) and pngRow for showing several canvases side by side. |
Watercolour and ink |
| src/ |
Internal · internal | 7 | 2 | The bindings to the native field-paint library: PaintLibrary finds the library file, and the internal FFM layer under PaintCanvas calls into it. |
|
| src/ |
Graphics | 3 | 3 | Smooth 1D noise that varies a stroke along its length, the same for the same seed, so the two eyes of a stereo pair can share it: PaintNoise. |
|
| src/ |
Graphics | 17 | 16 | Named painting tools that keep their state between strokes, and can be saved to a file and loaded back: PaintToolbox. |
|
| src/ |
Graphics | 104 | 98 | The tools and materials a PaintCanvas is worked with: grounds, brushes, knives, rags, pencils, and tubes of paint. |
Paint and pencil from FLines, Drawn Strokes Become Paint, Brushes with moving hairs |
| src/ |
Internal · internal | 0 | 0 | ||
| src/ |
Graphics | 22 | 22 | ParallelGeometryPool lets several writers produce geometry for the same frame, each into its own per-swapchain-image buffers, and dispatches a module once per writer that published. | |
| src/ |
Polytopes | 29 | 22 | Naming a subset of elements, and attaching a number to each one. | Polytopes: topology first, coordinates later |
| src/ |
Synthesis | 57 | 5 | The synth-facing head of the graph-query layer: turn a PathSet into a set of drivable parameters. |
Querying object graphs |
| src/ |
Languages | 5 | 5 | FieldML's second stage: tokens in, the surface tree out, by recursive descent with precedence climbing for the operators. | |
| src/ |
Video | 7 | 7 | Tracked particles from a video, turned into a velocity field that can be measured. | Vector field topology |
| src/ |
Examples | 2 | 1 | ||
| src/ |
Simulation | 41 | 41 | Particle sketching on the GPU: particles you paint into the renderer window by dragging, each moved every frame by a compute shader written against #include "particles/sketch", drawn as glowing dots with threads between them and trails behind them. |
|
| src/ |
Examples | 2 | 1 | ||
| src/ |
Video | 35 | 35 | Runs the optional offline particle tracker (RAFT optical flow, via PyTorch) over a video and caches the result as a PVTRACK1 file. | Video particles |
| src/ |
Examples | 2 | 1 | ||
| src/ |
Video | 59 | 59 | Reads particle-tracking results (PVTRACK1 files) as scrubbable frames and per-identity tracks, with no Python or Torch at load time. | Video particles |
| src/ |
Video | 3 | 3 | Draws a loaded ParticleVideo as images and as a scrubbable box output. |
Video particles |
| src/ |
Patterns | 66 | 65 | The parameter-application algebra: combining patterns of different types, and choosing whose rhythm survives. | A pattern in space: pat → Dough → Steam Audio, A pattern as a function generator, OSCQuery: controls other tools can find |
| src/ |
Lighting | 44 | 44 | A rig as data: what each fixture is, where it sits in DMX space, and where it sits in the room. | Driving Lights: Art-Net and sACN, A RectSL scene on a light rig |
| src/ |
Graphics · internal | 11 | 9 | Drive the browser build of the Patchy editor from box code: Box.patchyWeb shows Patchy in an output channel and returns a PatchyWebSession. |
Patchy |
| src/ |
Workspace · internal | 0 | 0 | The HTTP side of a Patchy editor that edits a .psd on disk: one route pair, addressed by an opaque output-binding id rather than by a path. |
|
| src/ |
Patterns | 14 | 11 | The transport everything scheduled in afield.audio.synth reads: one monotonic number that can be paused, sought and subdivided, so that patterns, Boolean networks and audio launches share a single notion of the current time. |
|
| src/ |
Patterns | 53 | 53 | Compositional structure: the transforms that build a piece out of a pattern, and the pitch vocabulary — scales, named chords, and voice leading. | Patterns: writing rhythm as a function of time, Faust, Lua in a Box |
| src/ |
Patterns | 26 | 15 | The shortest mini-notation expression that plays a given rhythm. | Patterns: writing rhythm as a function of time |
| src/ |
Patterns | 48 | 6 | Bridge from pat(...) into scalar functions (Functions.Fn). |
|
| src/ |
Audio | 26 | 20 | Rendering sound that reaches the listener around obstacles along baked probe paths. | |
| src/ |
Graphics | 10 | 1 | Converts between arc length along an FLine and its node parameter, by flattening its curves to a tolerance. |
|
| src/ |
Examples | 1 | 0 | ||
| src/ |
Data | 10 | 4 | A compile-checked path expression — the string-free counterpart to graphPaths. |
|
| src/ |
Data | 8 | 8 | The / operator queries an object graph by path: rig / "**\/freq" is shorthand for graphPaths. |
|
| src/ |
Imaging | 11 | 1 | Runs a path tracer, converts its output into ray reconstruction guides, and denoises it with DLSS Ray Reconstruction, in one ordered pass. | |
| src/ |
Imaging | 2 | 1 | ||
| src/ |
Renderers · internal | 2 | 2 | Real GPU checks for PathTracingRenderer.emitterSampling, the path tracer's direct sampling of emissive triangles: four scenes, each measured against a number that exists outside this file. |
|
| src/ |
Renderers | 9 | 2 | The path tracer's per-frame image set, for reconstruction rather than for display. | |
| src/ |
Renderers | 2 | 2 | All four of the path tracer's glass materials in one scene: clear, absorbing, frosted, and a thin pane. | |
| src/ |
Renderers | 4 | 3 | glTF and GLB into a PathTraceScene: hierarchy baked to world space, PBR parameters mapped onto PathTraceMaterial, and an extension check that refuses rather than renders the wrong thing. |
|
| src/ |
Renderers · internal | 2 | 1 | ||
| src/ |
Renderers · internal | 2 | 0 | ||
| src/ |
Renderers · internal | 8 | 4 | GPU smoke tests and a demo entry point for PathTracingRenderer. |
Progressive path tracing |
| src/ |
Renderers | 53 | 23 | The path tracer's instrument: what it is doing, why it restarted, and how fast it is converging. | Progressive path tracing |
| src/ |
Renderers · internal | 6 | 6 | Real GPU checks for the path tracer's participating medium: PathTracingRenderer.mediumDensity and everything that is sampled along a ray rather than at a surface. |
|
| src/ |
Renderers | 24 | 8 | What the path tracer traces: triangles, materials, textures and an environment map, all as plain Kotlin with no device attached. | Progressive path tracing, A polytope, cut open, and traced |
| src/ |
Renderers | 3 | 3 | pathTracingHere: a path tracer whose material function is the box's own editable compute shader, authored and hot-reloaded exactly like any other Field shader. |
|
| src/ |
Renderers · internal | 3 | 1 | ||
| src/ |
Renderers · internal | 2 | 1 | ||
| src/ |
Renderers | 9 | 9 | TriMesh into PathTraceScene, so that anything in Field which produces a mesh can be traced. |
|
| src/ |
Renderers | 56 | 39 | The path tracer itself: BVH upload, the two traversal backends, accumulation, and the history reprojection that keeps an image usable while a camera moves. | |
| src/ |
Patterns | 7 | 7 | Kolakoski rhythms: a bar whose own run lengths are written into it. | Patterns: writing rhythm as a function of time, Agent transcript gallery |
| src/ |
Patterns | 17 | 15 | The mini-notation catalogue: the forms a pat("…") string can take, one entry each, with the piano roll and the audio clip the documentation publishes under it. |
Patterns: writing rhythm as a function of time |
| src/ |
Patterns | 14 | 8 | Where a rendered pattern's notes actually start, measured from the audio. | |
| src/ |
Patterns | 1 | 1 | The step between pat("bd sd").respond { … } and a pattern that is actually playing: the return-value handler that recognises a PatResponseSpec coming back from a box and runs it. |
|
| src/ |
Patterns | 17 | 14 | Headless piano-roll gallery for the pattern language, drawing the operators defined across TidalPatterns.kt, PatSignals.kt, PatAlgebra.kt and PatComposition.kt. |
Patterns: writing rhythm as a function of time |
| src/ |
Patterns | 50 | 25 | What pitch a rendered pattern is actually sounding, measured from the audio. | |
| src/ |
Patterns | 29 | 29 | Continuous (signal) patterns, and the discretisers that turn them back into events. | A pattern as a function generator, Patterns: writing rhythm as a function of time, Petri nets |
| src/ |
Patterns | 31 | 22 | Headless offline sound renderer for the pattern language: the audible companion to PatPianoRollGallery's piano rolls, in the same harness shape as DoughDspSoundDocs. |
A Drawn Score, Heard, Sound: from a pattern to something you can hear, A Drawn Morph, Heard |
| src/ |
Patterns | 99 | 64 | A pattern placed in space: pat(...) -> DoughEngine -> Steam Audio HRTF, in realtime. |
A pattern in space: pat → Dough → Steam Audio |
| src/ |
Patterns | 2 | 1 | The patSpatial test that measures rather than asserts: Dough engines and Steam Audio effects in a tight loop, with no room, no ring and no audio thread. |
|
| src/ |
Patterns | 2 | 1 | The delivery check on patSpatial: the only one of its tests that opens an audio device. |
|
| src/ |
Audio | 7 | 6 | Renders the head-tracked binaural clip on the spatial patterns page offline through Steam Audio, and checks that it repeats exactly and that leaning moves the level. | |
| src/ |
Audio | 8 | 7 | ||
| src/ |
Patterns · internal | 2 | 1 | The audio check on patSpatial, run without an audio device: patterns that differ only in a spatial tag, and the samples that came out of each. |
|
| src/ |
Audio | 23 | 23 | Two of the published clips on pat_spatial.md: the mono source, before Steam Audio places it. |
|
| src/ |
Patterns | 48 | 25 | A pattern on the audio seam: pat(...) driving Field's own voices in realtime. |
A pattern that moves particles |
| src/ |
Patterns | 8 | 5 | The scenes and the checks for patSynth, the pattern scheduler that sits on the audio seam. |
|
| src/ |
Workspace | 11 | 11 | Pattern-based rewrite rules for box code, written in the box itself with a rewrite { from { } to { } } block and applied to the source before it compiles. |
|
| src/ |
Math · internal | 3 | 0 | Smoke for the pattern-rewrite layer (PatternRewrite), a structural source-to-source rewriter that lets a box author its own `rewrite { ... |
|
| src/ |
Patterns | 74 | 25 | Recovered audio, written back out as notation Field can re-render. | |
| src/ |
Patterns | 78 | 28 | A corpus that scores a transcription against the notation that generated the audio. | |
| src/ |
Patterns | 12 | 8 | The figure that makes the round trip something you look at rather than read about. | |
| src/ |
Synthesis | 41 | 29 | The box-facing side of Pure Data: a patch as a sound source, with messages both ways. | Pure Data, Agent transcript gallery |
| src/ |
Synthesis | 50 | 38 | A running libpd instance as a Field object: PdInstance opens patches, renders them offline or as a PdNode in a synth graph, and passes messages in and out. |
|
| src/ |
Synthesis | 17 | 6 | Pd as a box Main Language: PdExecution runs a child's code as a patch and a selected line as a Pd message, and installPdLanguage registers it. |
|
| src/ |
Synthesis | 7 | 7 | Finds the optional libpd native library (PdLibrary) and binds its C functions for PdInstance. |
|
| src/ |
Synthesis | 5 | 5 | The catalog of object names the built libpd can create, used by PdObjects.suggest to correct a mistyped object box. |
|
| src/ |
Synthesis | 15 | 15 | Reads Pd patch text into a graph of objects and connections without running Pd, and draws it into a box with showPdPatch. |
|
| src/ |
Machine learning | 78 | 46 | A learned pen: a recurrent network that has watched people write and draws the next point. | A learned pen, Teaching a pen, A pen that sees |
| src/ |
Machine learning | 19 | 19 | Pictures of what a learned pen is thinking: its next-step distribution as ellipses, a stroke coloured by one memory cell or drawn thick where the pen is sure to stay down, and the density of hundreds of possible futures as an image. | A learned pen, Teaching a pen, A pen that sees |
| src/ |
Workspace · internal | 8 | 5 | The content hash that catches a document edit dirty marking did not see. | |
| src/ |
Workspace | 11 | 10 | Loads the gitignored src/personal jar in its own classloader between core Field and the REPL, so box code can use personal classes and the layer can be replaced without restarting. |
|
| src/ |
Workspace · internal | 3 | 0 | Guards the PersonalLayer boundary: src/personal is off the app -cp and reachable only through its own classloader. |
|
| src/ |
Workspace | 14 | 6 | Reloading PersonalLayer at runtime, and coping with the objects the old one left behind. |
|
| src/ |
Visualization | 12 | 12 | What a net can tell you about itself without being played: how long it is, and whether it is about to wedge. | Petri nets, Petri notation cheatsheet, Agent transcript gallery |
| src/ |
Simulation | 6 | 2 | Serves the #petri editor extension, which highlights, checks, documents and completes Petri net regions embedded in box code. |
|
| src/ |
Examples | 3 | 1 | ||
| src/ |
Examples | 4 | 2 | ||
| src/ |
Simulation | 0 | 0 | The force-directed layout behind PetriLayout.FORCE: a spring relaxation run many times from different random starts, each scored for legibility, with the best drawing kept. |
|
| src/ |
Audio | 38 | 36 | Turns a Petri net into a PatPattern, so the whole pattern language applies to it. |
Petri nets, Petri notation cheatsheet |
| src/ |
Visualization | 145 | 85 | Petri nets: places hold tokens, transitions move them, and the whole thing is a clock. | Petri nets, A Petri net that throws sparks, Petri notation cheatsheet |
| src/ |
Visualization | 20 | 9 | The #petri text notation: a net you can retype while it is playing. |
|
| src/ |
Simulation · internal | 3 | 1 | The whole stack, end to end, in one headless process: model, notation, analysis, the pattern bridge, the live runtime, the drawing, and — the part that matters most — the sound. | |
| src/ |
Audio | 7 | 5 | ||
| src/ |
Audio | 9 | 7 | The sound on chain_petri_sparks.md: the page's Petri net, played from the pinned Dirt-Samples. |
|
| src/ |
Visualization | 75 | 57 | Every marking a net can reach by any interleaving, and the classical properties read off that: boundedness, safety, deadlock, quasi-liveness, liveness, reversibility, home markings, mutual exclusion. | Petri nets, A Deadlock, Sculpted and Traced, Petri notation cheatsheet |
| src/ |
Examples | 2 | 1 | ||
| src/ |
Visualization | 35 | 30 | Draws a Petri net as an FLine picture, and lets you click it to add tokens and fire transitions. |
Petri nets, Petri notation cheatsheet |
| src/ |
Math | 39 | 30 | An unscented Kalman filter, and a particle filter whose particles each carry one. | State estimation: tracking what you cannot measure |
| src/ |
Workspace | 36 | 17 | Frame-by-frame animation for box code: return a Frames and Field runs it once per Runloop frame. |
Frames and the animation loop |
| src/ |
Languages | 15 | 10 | StackSL's phase noise family: qnoise, phnoise, phrot — noise whose phase is a control, per frequency. |
|
| src/ |
Examples | 9 | 8 | ||
| src/ |
Examples · internal | 2 | 1 | ||
| src/ |
Synthesis | 19 | 2 | Two processors over one delay line read at fractional sample positions: FractionalDelay, a plain echo, and KarplusStrong, the same line closed into a loop and tuned to a pitch. |
|
| src/ |
Graphics | 15 | 15 | The GPU Field renders on: PhysicalDevice.createPhysicalDevice picks one, optionally by preferred name, and the object records its properties, features, memory types, queue families, extensions and driver identity. |
|
| src/ |
Graphics | 43 | 21 | Feedback rendering: PingPongRenderToTexture keeps a ring of images per color attachment, so a module can sample the previous frame while drawing the next. |
Field 4 Graphics |
| src/ |
Examples | 2 | 1 | ||
| src/ |
Workspace | 13 | 12 | A LogSink that pins chosen channels to a small, non-scrolling region at the top of the terminal while every other log line scrolls normally below it. |
|
| src/ |
Graphics | 4 | 0 | A Vulkan pipeline cache that the renderer passes to the pipelines it builds on one Device. |
|
| src/ |
Graphics | 13 | 5 | Finds where two parts touch on a shared plane, and audits apertures cut through that contact, in double precision. | Solids that cannot fail: Manifold in Field |
| src/ |
Graphics | 8 | 6 | Fills sets of 3D rings, holes included, by grouping them into planes and handing each plane to FloatEarcut. |
|
| src/ |
Graphics | 13 | 5 | Defines PlaybackClock, the time source VideoTexture reads to choose a frame, with two implementations: SystemClock (a monotonic clock with play, pause and seek) and AudioClock (time taken from an AudioPlayer). |
|
| src/ |
Workspace | 5 | 5 | Playlist functionality for Field4 | |
| src/ |
Examples | 0 | 0 | ||
| src/ |
Visualization | 15 | 15 | Plotly helpers — the short way to get a chart out of a box, wrapping space.kscience.plotly. |
Subharmonic Synthesis: an Octave Below, Looking at Data, Values over time: interpolants & keyframes |
| src/ |
Examples | 1 | 1 | ||
| src/ |
Graphics | 4 | 4 | Twelve checks over Field's PLY readers, as a standalone program that needs no Vulkan device. | |
| src/ |
Imaging | 3 | 3 | Encodes ARGB pixels, or an RGBA ByteBuffer read back from the GPU, into PNG bytes without AWT or javax.imageio. |
|
| src/ |
Math | 10 | 10 | A small immutable 3D point type used by the path-planning curves in this package. | |
| src/ |
Graphics | 39 | 39 | Accumulating points: GPU points plotted into a float image that fades a little every frame, so they build up into dust, trails or a density picture. | |
| src/ |
Simulation | 58 | 10 | PointDriver -- position in, force out. | |
| src/ |
Graphics | 42 | 28 | Turning a place a person is looking at back into a place in the world. | |
| src/ |
Graphics | 1 | 1 | Pointing a Ray at a mesh and asking what it hits. |
|
| src/ |
Graphics | 51 | 48 | A scene you can point at, and a hit record that names the part you touched rather than the triangle. | |
| src/ |
Graphics | 36 | 32 | A person pointing — mouse, XR controller or pinched hand — behind one interface, and the hover / press / drag / release machine that turns a stream of samples into an interaction. | |
| src/ |
Graphics | 17 | 14 | Seeing what the pointer found: the picked part lit, a crosshair where the pointer was aimed, and a caption that names what it hit. | |
| src/ |
Graphics | 189 | 4 | Fits a List<Vec3> or an FLine with a tree of 3D polynomial curves, splitting a span until each leaf meets its error targets. |
|
| src/ |
Examples · internal | 4 | 1 | ||
| src/ |
Polytopes | 43 | 36 | Rank 4: the seeds, the coordinates and the viewing policy that exercise the incidence core at a rank a polyhedron library never reaches. | Polytopes: topology first, coordinates later |
| src/ |
Examples | 3 | 2 | ||
| src/ |
Polytopes | 1 | 1 | The single place this package knows that Field has a screen — and it is one function long. | |
| src/ |
Graphics | 47 | 28 | Turning a raster line drawing into curves, by the polyvector-field method of Bessmeltsev and Solomon (2019). | Vectorizing line drawings: polyvector fields |
| src/ |
Graphics | 12 | 3 | Finding field_polyvector on this machine, and calling into it once found. |
|
| src/ |
Graphics | 9 | 4 | Polyvector tracing under a graph the result has to reproduce: a Polyvector.vectorize overload that takes the curves the trace must keep, and a RequiredGraphDrawing saying which of them it kept. |
|
| src/ |
Search | 50 | 50 | Population search over any genome type — the generic drivers that alife_evolve.kt, FunctionEvolve.kt and afield.simulation.kratos.KratosStudy all run on. |
Spatial artificial life, Braitenberg vehicles with memory |
| src/ |
Imaging | 2 | 1 | ||
| src/ |
Workspace | 2 | 0 | ||
| src/ |
Visualization | 13 | 13 | Giving a talk from a Field document: Box.presentation builds the same steps a slideShow does, and each step can carry a slide for a separate audience display. |
Presenting with Field |
| src/ |
Visualization | 0 | 0 | Reduces a slide to the plain text a presenter can search, by reading the audience HTML the talk would actually show. | |
| src/ |
Visualization | 15 | 6 | The on-disk format for a talk's editable slides, and the two slides(...) builders that read a deck into a slideshow. |
|
| src/ |
Machine learning | 17 | 17 | The AI4 tools for a document's slides: read and revise an editable slide file, and inspect or drive a presentation that box code has already built. | |
| src/ |
Audio · internal | 0 | 0 | ||
| src/ |
Internal · internal | 0 | 0 | ||
| src/ |
Graphics | 58 | 38 | Elastic principal graphs: smooth curves, trees and forests fitted through a 2-D or 3-D point cloud, as a port of ElPiGraph. | Principal curves: smooth curves through point clouds, Chaining the geometry extensions |
| src/ |
Graphics | 12 | 3 | Finding field_principal_curves on this machine, and calling into it once found. |
|
| src/ |
Audio | 31 | 27 | Probe points placed through a scene, and the batches that hold their baked data. | |
| src/ |
Renderers | 11 | 11 | Six Gaussian-splat clouds built from code, for a splat shader to deform: a shell, a fern, a nautilus, coral, a bloom and a braid. | |
| src/ |
Examples | 2 | 1 | ||
| src/ |
Graphics | 31 | 23 | Projection matrices for the Vulkan renderer: a plain perspective Projection and a SuperProjection that blends perspective into orthographic. |
|
| src/ |
Workspace | 16 | 4 | The thread-safe, insertion-ordered map that holds every Box's properties. |
|
| src/ |
Workspace | 23 | 16 | Records which boxes read values held by other boxes, per document, and saves that record as dependencies.edn beside metadata.edn. |
|
| src/ |
Workspace | 4 | 4 | The prop / rootProp macro pair — the typed, inheritable box-property slot. |
|
| src/ |
Audio AI | 268 | 268 | The wire vocabulary of Field Audio — one Kotlin type per JSON object in the pinned service contract, and nothing else. | Field Audio service reference, Corpus microscope: from recordings to related windows, Visualizers, Displays, and Little Instruments |
| src/ |
Examples · internal | 5 | 3 | ||
| src/ |
Workspace | 18 | 18 | Provisional edits: proposed text for a box property, typically from AI4, held per document until someone accepts or rejects it. | |
| src/ |
Imaging | 90 | 9 | The control vocabulary for an offscreen Chromium tab driven from Field: its state, events, and the pointer, key, touch and JavaScript requests a box sends it. | Chromium as a native Field surface |
| src/ |
Imaging | 37 | 7 | Input adapters that route mouse, keyboard and controller rays into a PuppetBrowser. |
|
| src/ |
Imaging | 12 | 4 | A Vulkan effect that draws a live puppet browser page through a grid of moving, mirrored triangular shards. | |
| src/ |
Imaging | 10 | 10 | Page queries on a puppet browser: an element's text or attribute, a count, a table as rows, and a wait for a condition. | Chromium as a native Field surface |
| src/ |
Imaging | 19 | 5 | ||
| src/ |
Imaging | 15 | 3 | Shows a puppet browser page as a clickable, scrollable quad in VR or in the desktop stereo stand-in. | |
| src/ |
Imaging | 14 | 2 | Shows a puppet browser page letterboxed inside a Field render window, with mouse hit-testing back into page coordinates. | |
| src/ |
Imaging | 14 | 4 | The portable optical-flow backend: coarse-to-fine Lucas–Kanade built from ordinary fragment passes, for devices without a hardware motion engine. | |
| src/ |
Languages | 4 | 3 | Error locations for Python boxes: the cell line that raised, read from the exception's traceback. | |
| src/ |
Languages | 50 | 3 | Python as a Field main language: a box whose source is Python, executed in this process by CPython through JEP. | |
| src/ |
Languages | 3 | 3 | Line notes for Python boxes: a rewriter that records what each top-level statement of a cell evaluated to, for display beside the code. | |
| src/ |
Workspace | 60 | 45 | Qualified sources: changing a rule without breaking what already works | Change a rule without breaking what already works |
| src/ |
Audio | 11 | 10 | Measured quality presets for Steam Audio reflections and binaural rendering, as QualityPreset. |
|
| src/ |
Graphics | 53 | 53 | Reshapes a scalar signal's distribution by fitting a monotone 8-knot PCHIP curve from the measured quantiles of recent samples onto the quantiles of a chosen target distribution — TargetDistributions.UnitNormal by default, or any QuantileFunction. |
Measuring dependence between two signals, Field 4 Graphics |
| src/ |
Graphics | 8 | 8 | Vulkan device queues: Queue fetches a queue from a family and submits command buffers with wait and signal semaphores and an optional fence. |
|
| src/ |
Math | 15 | 15 | Box-scoped randomness. | Flow Matching, State estimation: tracking what you cannot measure |
| src/ |
Graphics | 10 | 10 | What the GPU supports for hardware ray tracing: RayDeviceSupport lists the acceleration-structure, ray-query and ray-tracing-pipeline extensions and features, and derives whether each path is usable. |
|
| src/ |
Imaging | 14 | 1 | A direct-lighting scene lit by RTXDI whose output can be switched between raw, spatially denoised and DLSS Ray Reconstruction paths. | |
| src/ |
Imaging | 2 | 0 | ||
| src/ |
Renderers · internal | 23 | 19 | The figures on Field's ray tracing pages: the StandardRendererDocsHarness shape, over the ray tracing pipeline instead of the rasterizer. |
|
| src/ |
Renderers | 3 | 2 | The ray-tracing audit: one JVM entrypoint that drives Field's path-tracing and ray-pipeline smokes against a real GPU and writes down what it found. | |
| src/ |
Graphics | 61 | 3 | The ray-tracing counterpart of Module: a Vulkan ray-tracing pipeline built from raygen, miss, hit-group and callable shaders, with its shader binding table and bound resources. |
Ray Tracing Examples |
| src/ |
Math | 19 | 18 | Scattered-data interpolation over two or more dimensions with radial basis functions: RbfField and its rbfField builder, the multi-dimensional counterpart of Functions.rbf. |
Functions to FLine examples (Field graphics) |
| src/ |
Workspace | 12 | 12 | propUp, propDown and propUpDown: prop with re-execution attached. |
|
| src/ |
Examples | 0 | 0 | ||
| src/ |
Workspace | 28 | 19 | Reactive properties: the runs that propUp pulls from upstream and propDown pushes downstream. |
|
| src/ |
Polytopes | 34 | 27 | The middle realization verb: improve an embedding you already have. | Polytopes: topology first, coordinates later |
| src/ |
Polytopes | 16 | 15 | Coordinates from combinatorics alone, and the gauge that makes an answer a representative. | Polytopes: topology first, coordinates later |
| src/ |
Internal · internal | 0 | 0 | ||
| src/ |
Imaging | 21 | 2 | A small editable raster scene for trying DLAA and DLSS super resolution without ray tracing. | |
| src/ |
Imaging · internal | 2 | 1 | ||
| src/ |
Imaging | 2 | 1 | ||
| src/ |
Languages | 562 | 47 | RectSL — Field's rectangle scene language, and the largest single file in the tree. | RectSL Inverse Animation, RectSL examples, RectSL cheatsheet |
| src/ |
Languages | 2 | 2 | Two tools a document can hand to its AI4 agents: one syntax-checks a RectSL program, the other renders it in the document's live Field 4 window and returns the captured frames to the conversation. | |
| src/ |
Examples · internal | 2 | 1 | ||
| src/ |
Languages | 35 | 35 | The exact coverage a soft raster is approximating, and the measurement of how far off it is. | |
| src/ |
Examples | 4 | 3 | ||
| src/ |
Examples | 0 | 0 | ||
| src/ |
Languages | 6 | 6 | Serves rectsl.js, the browser-side RectSL editor support, to the page and to the test that checks it. |
|
| src/ |
Examples | 3 | 0 | ||
| src/ |
Examples | 5 | 0 | ||
| src/ |
Languages | 22 | 19 | Inverse animation: say where a rect should be and when, and solve for the numbers. | |
| src/ |
Languages · internal | 4 | 4 | A fit, as a picture, with its counterfactual beside it. | |
| src/ |
Languages | 18 | 18 | RectSL tracks as differentiable Fn graphs — the third backend. |
RectSL Inverse Animation |
| src/ |
Renderers · internal | 15 | 15 | The RectSL gallery on the docs site, rendered offscreen: the StackSLGalleryHarness shape, applied to programs that describe a whole scene rather than one fullscreen fragment. |
|
| src/ |
Languages | 34 | 28 | RectSL scenes as GLSL signed distance fields. | RectSL cheatsheet |
| src/ |
Languages | 9 | 8 | A RectSL scene as a sequence of Imgs: the bridge from the rectangle language to everything in Field that reads an image — afield.media.image filters, showImg, and Patch.mapImage, which puts a scene on a light rig. |
|
| src/ |
Examples | 2 | 1 | ||
| src/ |
Examples | 3 | 1 | ||
| src/ |
Languages | 22 | 11 | RectSL's musical layer — the Tidal pattern language as scene structure | |
| src/ |
Languages | 21 | 3 | The variation and layout halves of RectSL's musical layer. | |
| src/ |
Languages | 43 | 37 | RectSL as a main language in Field: running a scene box compiles its rectSL, draws it live in the window above it, and checks it in to the box's study. |
|
| src/ |
Languages | 31 | 23 | What to do with a RectSL distance field once you have one. | RectSL cheatsheet, RectSL examples |
| src/ |
Languages | 2 | 2 | An algebraic simplifier over the track IR, under a requirement that every rewrite be bit-exact. | |
| src/ |
Languages | 61 | 61 | The third lowering: a RectSL scene as a differentiable raster, so a picture can be fitted. | A RectSL animation, as a solid object |
| src/ |
Languages · internal | 5 | 5 | A soft raster, its exact reference, and the difference between them — as a picture. | |
| src/ |
Languages | 27 | 15 | RectSL read as source: what the editor and the study tools need that a plain compile does not give — where things are. | |
| src/ |
Languages | 50 | 39 | The RectSL study: checked revisions of a box's rectSL scene, and the frames, timelines, traces, knob sweeps, variants and comparisons that an AI4 chat and a person use to look at it. |
|
| src/ |
Examples · internal | 3 | 3 | ||
| src/ |
Languages | 25 | 16 | Drawing a RectSL scene for a study, on the GPU in a running window (RectSLGpuRasterizer) or by the CPU reference (CpuRectSLRasterizer), through the one shader setup in RectSLStudyShader so that both give the same frames. |
|
| src/ |
Languages | 41 | 9 | The tools an AI4 conversation gets when it is opened on a RectSL scene's rectSL property. |
Talking a scene into existence |
| src/ |
Languages | 9 | 6 | The output card a person uses on a RectSL study: a filmstrip, a scrubbed window, knobs for the scene's numbers and colours, and the keep, adopt, restore and check-in actions (RectSLStudyViewer). |
|
| src/ |
Languages | 3 | 3 | Every word the RectSL evaluator knows, with what the cheatsheet says it does — the vocabulary the editor offers in completion and explains beside the cursor. | |
| src/ |
Languages | 6 | 6 | Links between the editor and a RectSL scene's window: the cursor's line is outlined in the window, and clicking a rectangle in the window puts the editor on the line that made it (RectSLWindowLinks). |
|
| src/ |
Examples | 3 | 0 | ||
| src/ |
Workspace · internal | 0 | 0 | The server side of the refactor-pass review panel: two routes that drive tools/refactor_pass.py in the docs-improvement checkout, one job at a time. |
|
| src/ |
Audio | 31 | 25 | Rendering simulated reflections onto a source's audio. | |
| src/ |
Examples | 1 | 0 | ||
| src/ |
Machine learning | 5 | 2 | Suggests the guides and example files most related to a source path, for AI tools that hand an agent a symbol or file. | |
| src/ |
Graphics | 1 | 1 | What survives when a module compiles a new shader and swaps it in: which uniform buffers keep their contents, which are reallocated, which are retired, and which of the values already written into them are re-applied. | |
| src/ |
Graphics | 0 | 0 | Keeps a module's resource resolvers one layer deep across repeated shader reloads. | |
| src/ |
Languages | 4 | 3 | The Kotlin/JS declarations a box sees when it runs Kotlin in the browser RemoteAR head. | |
| src/ |
Languages | 28 | 2 | RemoteJS — JavaScript that runs in a browser somewhere else, written in a Field box here. | |
| src/ |
Languages | 10 | 10 | Where a message from a browser head lands when it names a box rather than a run. | |
| src/ |
Examples · internal | 2 | 0 | ||
| src/ |
Examples · internal | 2 | 0 | ||
| src/ |
Languages | 3 | 1 | The onStart / onFrame / onStop / keepAlive callbacks that every remote Kotlin/JS head shares. |
|
| src/ |
Audio AI | 30 | 30 | The render-to-analysis pipeline: render Field synthesis to a WAV, upload it once, and fan out durable analysis jobs. | Render Field music, then analyse it, Visualizers, Displays, and Little Instruments |
| src/ |
Graphics | 87 | 13 | The Vulkan renderer: one Renderer owns the instance, device, queues, command pools and the swapchain of each of its windows, and records, submits and presents a frame per tick. |
Neural image rendering with OpenDLSS-NR, Profiling |
| src/ |
Workspace · internal | 1 | 1 | ||
| src/ |
Examples | 2 | 1 | ||
| src/ |
Graphics | 19 | 11 | The render pass that draws a window's swapchain image: an ordered collection of modules, mesh modules and other targets recorded into one frame. | |
| src/ |
Graphics | 75 | 58 | Offscreen rendering: RenderToTexture draws modules into its own color (and optional depth) images, which other modules then sample as textures. |
|
| src/ |
Visualization | 4 | 1 | A small {{placeholder}} templating system: filter replaces each placeholder from knownValues or templates, and an unknown one becomes empty text. |
|
| src/ |
Workspace · internal | 3 | 1 | Smoke test of the bootstrap ordering of a KotlinInterface2 engine: the stdlib intro is evaluated before any ordinary snippet. |
|
| src/ |
Workspace · internal | 3 | 2 | Smoke test of the rerun compile cache: a rerun of an unchanged snippet is evaluated again without compiling, its body really runs, and every change that would make a recompile bind differently compiles. | |
| src/ |
Workspace · internal | 6 | 3 | Smoke test of what a box may declare at its top level and still compile under the K2 REPL. | |
| src/ |
Workspace · internal | 2 | 1 | ||
| src/ |
Machine learning | 30 | 7 | Bounded commands for a headless AI4 job | |
| src/ |
Machine learning | 33 | 5 | The repo tools read, list, search, patch and create files in one checkout, for a job that hands AI4 work a coding agent would otherwise do (a docs-notes revision, a landing question). |
AI4's built-in tools |
| src/ |
Workspace · internal | 0 | 0 | Compile once, re-evaluate on rerun: one K2 engine's record of the snippets it has compiled. | |
| src/ |
Audio | 48 | 5 | Vectorized resonator banks for spectral analysis without an FFT: ResonatorBank is a fixed-frequency EMA resonator bank, and TrackingResonatorBank retunes each resonator toward the frequency it hears. |
Signal examples: time and frequency |
| src/ |
Machine learning | 12 | 7 | How well documentation search answers the questions the repository already asks of it. | |
| src/ |
Workspace | 11 | 1 | What happens to the value a box's code returns: ReturnValueRegistry offers it to each registered ReturnValueHandler in turn, and the first one that accepts it keeps it running. |
|
| src/ |
Workspace | 31 | 31 | The rule-authoring surface for the pattern-rewrite layer (see PatternRewrite). |
Rewriting your own syntax, Agent transcript gallery, Spatial artificial life |
| src/ |
Graphics | 21 | 21 | The rigged glTF files the skinning tests pose, generated by this source rather than downloaded. | |
| src/ |
Graphics | 11 | 8 | Reads a rendered image back to the CPU a strip at a time, so a full-frame capture never stalls a frame. | |
| src/ |
Networking | 31 | 14 | The box-facing side of RTP-MIDI: rtpMidi(...) opens or joins an AppleMIDI network session that a DAW, an iPad app or macOS MIDI Network Setup can connect to, and rtpMidiDiscover() lists the sessions already on the network. |
Network MIDI: RTP-MIDI sessions |
| src/ |
Networking | 16 | 7 | Packet encoding and decoding for RTP-MIDI (RFC 6295) and the AppleMIDI session commands around it. | |
| src/ |
Networking | 30 | 13 | A UDP AppleMIDI session that accepts or sends invitations, keeps peer clocks in sync and sends and receives MIDI as javax.sound.midi messages. |
|
| src/ |
Graphics | 0 | 0 | The RTXDI implementation behind DirectLighting's two RTXDI modes: reservoir resampling run entirely as compute passes over GPU buffers, with none of the SDK's CPU-side wrapper linked in. |
|
| src/ |
Graphics | 2 | 1 | ||
| src/ |
Graphics | 1 | 1 | Loads the optional RTXDI shaders, and refuses a binary whose interface disagrees with the host code written against it. | |
| src/ |
Graphics | 16 | 15 | Live controls for the RTXDI resampling path of DirectLighting. |
Direct lighting |
| src/ |
Workspace · internal | 2 | 1 | ||
| src/ |
Workspace | 19 | 4 | The main Field loop: Runloop ticks preRun, the Framer dispatcher and postRun once per frame on one thread. |
Profiling, Frames and the animation loop |
| src/ |
Workspace | 0 | 0 | A box's callbacks on a long-lived object, registered so that stopping or rerunning the box takes them off again. | |
| src/ |
Workspace | 34 | 29 | Run scopes: what a box's run owns, and which of stop, re-run or retire releases it. | Beat and pitch analysis, Corpus microscope: from recordings to related windows, Short-time spectral spaces |
| src/ |
Workspace | 4 | 0 | The runtime debug probe: samples a symbol at a line of a running box or a src/ file and shows the values in the box's "debug probe" output channel. |
|
| src/ |
Workspace | 5 | 5 | RuntimeIdentity records which compiled classes and native libraries produced a result, as hashes, and throws RuntimeIdentityMismatch from RuntimeIdentity.verify when a host has loaded different code. |
|
| src/ |
Workspace | 52 | 1 | The JSON line protocol between Field and the JDI probe helper process: probe requests and the ack, sample, error and completion responses. | |
| src/ |
Examples · internal | 2 | 0 | ||
| src/ |
Lighting | 35 | 35 | Streaming ACN (ANSI E1.31-2016, "sACN") packet encoding and decoding — the wire format only. | |
| src/ |
Workspace · internal | 3 | 0 | Smoke for File.safeSave's atomic = true path, which is what keeps a file readable while it is being rewritten. |
|
| src/ |
Synthesis | 81 | 31 | Playback of recorded audio, from reading a buffer straight through to scattering it into grains. | |
| src/ |
Data | 7 | 7 | Per-box persistence for Kotlin values, on top of kotlinx.serialization. | |
| src/ |
Examples · internal | 3 | 0 | ||
| src/ |
Workspace | 5 | 1 | A timestamped append-only log of document save and reload events, written to ~/.afield/logs/save_reload.log. |
|
| src/ |
Workspace · internal | 33 | 11 | Reads and writes a document as metadata.edn plus sidecar files, and keeps backups of what it replaces. |
What a document is on disk |
| src/ |
Audio | 26 | 19 | Acoustic geometry: the scene that sound is simulated against, and the meshes in it. | |
| src/ |
Lighting | 16 | 16 | A RectSL scene driven onto a light rig over sACN, and measured end to end. | |
| src/ |
Simulation | 81 | 49 | The canvas as a score: boxes are the events, a playhead box sweeps across them, and each box's score { } runs every frame the playhead is over it. |
|
| src/ |
Internal · internal | 4 | 2 | Running code in a box, Why does this value resolve here? | |
| src/ |
Workspace · internal | 54 | 26 | Screenshot and video capture of Field's browser UI, used by the backdoor and the docs runner. | |
| src/ |
Machine learning | 8 | 3 | An LlmBridge that replays a fixed script of tool calls instead of asking a model. |
|
| src/ |
Search | 31 | 31 | Equal-budget comparison of search drivers for any GenomeOps and Objective: "does search beat random sampling here?" |
Spatial artificial life |
| src/ |
Graphics | 31 | 19 | 2D regions with holes, from Manifold's CrossSection: boolean operations, offsetting with a choice of JoinType, and extrusion into a Solid. |
|
| src/ |
Machine learning | 184 | 2 | Hybrid semantic search over Field's own source, the open workspace and the documentation, backed by a local Lucene index and an ONNX embedding model. | |
| src/ |
Examples · internal | 2 | 0 | ||
| src/ |
Data | 38 | 0 | Box-facing wrapper around afield.ai.retrieval.SemanticRetrievalService, Field's embedding-based search over source, docs and workspace boxes. |
|
| src/ |
Graphics | 6 | 4 | A Vulkan semaphore for GPU-to-GPU ordering between queue submissions, timeline by default. | |
| src/ |
Machine learning | 6 | 6 | What a sensing pen sees of the ink around it: the Kotlin half of python/fieldpen/sense.py, which has the canonical definition. |
|
| src/ |
Patterns | 54 | 4 | Notes with times on them, and a lazy player for a stream of them. | Boolean network music examples, Visualizers, Displays, and Little Instruments |
| src/ |
Audio | 7 | 5 | Saving and loading Steam Audio scenes, meshes and probe batches as bytes, through SerializedObject. |
|
| src/ |
Workspace · internal | 85 | 28 | The Field server: the Ktor HTTPS and WebSocket application that holds open documents, runs box code and answers the browser's RPC messages. | |
| src/ |
Workspace | 1 | 0 | ||
| src/ |
Workspace · internal | 2 | 0 | ||
| src/ |
Workspace | 3 | 3 | A per-session copy of everything written to System.err, kept under build/logs/ in the working directory, with stack traces also pinned on the console. |
|
| src/ |
Graphics | 5 | 4 | Decides whether a recompiled shader can be swapped in without a full reload. | |
| src/ |
Workspace · internal | 4 | 4 | Completion documentation for shader bindings, taken from the comments a box's preamble carries. | |
| src/ |
Simulation | 37 | 37 | Reynolds boids as a Vulkan compute shader, over a GPU neighbour grid, with the interaction rule swappable for a trained network. | Neural particle systems |
| src/ |
Examples | 2 | 1 | ||
| src/ |
Examples · internal | 1 | 0 | ||
| src/ |
Examples · internal | 1 | 0 | ||
| src/ |
Examples · internal | 1 | 0 | ||
| src/ |
Graphics | 30 | 30 | What changed in a shader's interface across a full reload, binding by binding and member by member. | |
| src/ |
Graphics | 3 | 2 | Acceptance checks for a learned shader, run from a box beneath the moduleHere starting point once training finishes. | |
| src/ |
Graphics | 14 | 1 | Side-by-side comparison of a real module's render target with its learned replacement. | |
| src/ |
Examples | 2 | 1 | ||
| src/ |
Examples | 2 | 1 | ||
| src/ |
Graphics | 185 | 183 | The bridge between a box's text and a live Vulkan pipeline: shader source lives in box properties, and this file turns it into modules and keeps them hot-reloading. | Field 4 Graphics, A learned shader function, Editing a document from outside Field |
| src/ |
Graphics | 25 | 17 | GLSL to SPIR-V compilation through shaderc, with #include resolution and line-numbered error reports. |
|
| src/ |
Graphics | 18 | 18 | What a ShaderToy Image pass reads and draws onto in Field: ShadertoyChannel (a texture turned the way ShaderToy samples one), ShadertoyCanvas (the picture a document's shadertoy boxes share, shown in the renderer window) and webcam (the camera as a channel). |
|
| src/ |
Graphics | 1 | 1 | ShaderTrinket's Publish, as a function: publishShadertoyCanvas streams a shader canvas over WebRTC under a name, so what a viewer sees is whatever that canvas is showing, presets included. |
|
| src/ |
Graphics | 7 | 4 | Offline distillation of a Field render target into a small learned shader: capture samples, then train them in Python. | |
| src/ |
Graphics | 4 | 4 | Notes and markers that report how a shader reload changed a box's uniforms, buffers and push constants. | |
| src/ |
Examples · internal | 1 | 0 | ||
| src/ |
Workspace · internal | 8 | 3 | ||
| src/ |
Workspace · internal | 2 | 1 | ||
| src/ |
Simulation | 5 | 2 | Geometric checks on a deformed pressure envelope: ShapeAudits finds triangle self-intersections, sharp folds between neighbouring triangles, panel seams and multi-panel junction angles. |
|
| src/ |
Video | 0 | 0 | One slot of the GPU memory a diffusion session shares with its worker: a device-local buffer and a timeline semaphore, both exported to the worker as file descriptors. | |
| src/ |
Workspace · internal | 7 | 7 | Lets several boxes in one document use the same Kotlin class, with its real type. | |
| src/ |
Workspace · internal | 3 | 1 | Spike that measures whether a shared declarations directory can carry user-defined types between boxes. | |
| src/ |
Workspace · internal | 3 | 0 | End-to-end smoke for SharedTypes: publishing user-declared Kotlin types that every box can name. |
|
| src/ |
Graphics | 30 | 24 | Stereo rendering into one packed image: SideBySideStereoTarget draws the scene once per eye and lays the two views side by side, left eye on the left half. |
Field on Apple Vision Pro |
| src/ |
Examples · internal | 2 | 1 | ||
| src/ |
Examples · internal | 2 | 1 | ||
| src/ |
Examples · internal | 2 | 1 | ||
| src/ |
Synthesis | 104 | 28 | The value types the rest of the synthesis category is written in, and the per-block contract they render under. | How to make sound in Field, Faust, A pattern that moves particles |
| src/ |
Workspace · internal | 1 | 1 | The HTTP side of the frontend signal viewer: one route that answers range queries over a SignalViewer a box is currently showing. |
|
| src/ |
Visualization | 35 | 12 | A zoomable viewer for functions of time: each SignalChannel is a lane drawn as a min/max envelope, resampled as you zoom. |
A function, played and read back, Visualizers, Displays, and Little Instruments |
| src/ |
Simulation | 32 | 19 | The particle solver: structure-of-arrays Verlet integration, directed distance constraints, and the vector kernels that run both. | |
| src/ |
Examples | 2 | 1 | ||
| src/ |
Simulation | 60 | 32 | Collision shapes for SimdVerlet: the world layer of the particle solver. |
Particles, welded, and traced, Physics: particles, constraints and cloth |
| src/ |
Simulation | 1 | 1 | A SimdVerlet's particles and constraints as FLines, for seeing what the solver holds rather than what the scene means. |
|
| src/ |
Simulation | 22 | 10 | Runs a SimdVerlet particle simulation and a Dyn4jScene in one frame, so that chosen particles collide with rigid bodies as circles while the rest stay ordinary particles. |
|
| src/ |
Simulation | 18 | 11 | Tearing for SimdVerlet: retiring over-stretched distance constraints, and the two measurements that say where to set the threshold. |
|
| src/ |
Examples | 2 | 1 | ||
| src/ |
Simulation | 32 | 15 | Wind for SimdVerlet: per-particle drag, per-quad cloth aerodynamics, and the reproducible gust field both of them sample. |
|
| src/ |
Renderers | 5 | 5 | A Gaussian-splat shader pair seeded into a box as editable starter source, so the splat shader is live Field code rather than source hidden inside GaussianSplatRenderer. |
|
| src/ |
Graphics | 22 | 3 | Loading a model file onto the GPU, with its materials and textures. | Geometry from disk |
| src/ |
Graphics | 15 | 9 | Loads a PLY mesh or point cloud into a live Vulkan module, shaders included. | Geometry from disk |
| src/ |
Audio | 109 | 26 | 3D sound playback over OpenAL: SimpleSpatialAudioEngine loads WAV files into SoundBuffers, plays them through positioned SoundSources, and applies ReverbSettings or EaxReverbSettings effects. |
|
| src/ |
Graphics | 6 | 6 | An orbitable picture of a handful of embeddings and the distances between them, in a box's output. | |
| src/ |
Audio | 76 | 72 | Steam Audio's acoustic simulator: SimulationSettings fixes its quality and cost, Simulator runs direct, reflection and pathing simulation over a Scene, and each Source carries its own SimulationInputs in and SimulationOutputs out. |
|
| src/ |
Workspace | 16 | 7 | A manually stepped coroutine clock, so delay and withTimeout inside a box follow simulation time. |
Profiling |
| src/ |
Simulation | 45 | 45 | What a session is told about shape, and the discretisation that shape gets solved on. | Filling a solid: tetrahedral meshing with TetGen |
| src/ |
Workspace | 7 | 3 | SimulationReset, a way for UI or agent threads to ask a running simulation to reset at its next frame boundary, with several requests before that boundary coalesced into one reset. |
|
| src/ |
Simulation | 31 | 27 | One solved revision: the raw fields exactly as Kratos produced them, and the views Field draws. | |
| src/ |
Graphics | 11 | 9 | Posing a rigged glTF on the CPU: into a fresh TriMesh, or back into the vertex buffer a loaded model already owns. |
|
| src/ |
Graphics | 6 | 3 | The evidence run behind Field's CPU glTF skinning: ./gradlew --no-daemon runSkinningEvidence. |
|
| src/ |
Graphics | 13 | 10 | Compiles Slang shaders by running an external slangc, to GLSL, SPIR-V and reflection JSON. |
|
| src/ |
Examples | 4 | 0 | Test file demonstrating the slider functionality. | |
| src/ |
Visualization | 73 | 36 | SlideShow - A DSL for creating guided tours through Field documents | Interactive Guides, Presenting with Field |
| src/ |
Examples | 7 | 7 | Example slideshows demonstrating the slideshow DSL | Interactive Guides |
| src/ |
Graphics | 10 | 4 | The GPU side of Slug filled-path rendering: SlugBuffer holds one SlugPath's atlas words in a Vulkan storage buffer that a slug shader reads. |
|
| src/ |
Graphics | 4 | 2 | Compiles a filled, flat FLine into Slughorn atlas data (SlugPath) by running the native field-slug helper, built with ./gradlew buildSlugNative. |
|
| src/ |
Examples | 2 | 1 | ||
| src/ |
Math | 23 | 3 | Two 1D fitters that wrap the Smile library: smileCubicSpline (cubic spline interpolation through the data) and smileGaussianProcess (Gaussian-process regression with a Gaussian kernel, configured by SmileGpOptions). |
|
| src/ |
Data | 35 | 35 | Classical multidimensional scaling and t-SNE, over equal-length vectors or over a distance matrix you computed yourself, wrapping Smile. | Projecting a distance matrix |
| src/ |
Data | 26 | 26 | Nearest-neighbour indexes over Vec2 / Vec3 point lists, wrapping Smile's KDTree and LSH. |
Neighbours and graphs on a point cloud |
| src/ |
Examples · internal | 3 | 1 | ||
| src/ |
Graphics | 1 | 1 | ||
| src/ |
Workspace · internal | 0 | 0 | ||
| src/ |
Graphics | 54 | 46 | Closed 3D volumes from the Manifold library: primitives, transforms, union, difference and intersection, with results that stay closed manifolds. | Solids that cannot fail: Manifold in Field |
| src/ |
Graphics | 28 | 17 | The measurement this package exists for: one written shape, evaluated two completely independent ways, and the disagreement reported as a number. | |
| src/ |
Graphics | 15 | 4 | An optional bridge to the SolidCraft B-rep document engine, whose model stays in native Rust code. | SolidCraft: edit the design, then see the part |
| src/ |
Graphics | 34 | 31 | Writing a SolidCraft part in Kotlin instead of drawing it: sketches, the features that turn them into solids and surfaces, and named parameters that stay editable afterwards. | SolidCraft: edit the design, then see the part |
| src/ |
Graphics · internal | 2 | 1 | ||
| src/ |
Graphics · internal | 2 | 1 | ||
| src/ |
Graphics | 29 | 20 | Lowering (b): a SolidExpr as an exact Manifold Solid — or a stated refusal. |
A solid, written down: afield.lang.solidsl |
| src/ |
Graphics | 74 | 57 | The SolidSL algebra: 3D solids and 2D profiles as immutable data values, with the builder functions that write them and the bounds that enclose them. | A solid, written down: afield.lang.solidsl, Solids that cannot fail: Manifold in Field |
| src/ |
Graphics | 10 | 8 | Lowering (a): a SolidExpr as a signed distance field, so everything mesh_sdf.kt, marchingCubes and Solid.levelSetOf already do keeps working unchanged. |
A solid, written down: afield.lang.solidsl |
| src/ |
Graphics | 10 | 8 | Lowering (c): the same SolidExpr as GLSL, so the shape that produces the fabricable mesh can also be ray-marched on a GPU at sixty frames a second. |
A solid, written down: afield.lang.solidsl |
| src/ |
Graphics | 43 | 27 | Lowering (c): a SolidExpr as a value and an exact gradient — with respect to its own named parameters, not only to position. |
A solid, written down: afield.lang.solidsl |
| src/ |
Graphics | 1 | 1 | The three things the solid inspector measures off a part's boundary: which edges are worth drawing, which triangles belong to the same face, and one string that identifies the whole set of parts. | |
| src/ |
Graphics | 60 | 36 | The payoff of lowering (c): inverse design. Declare what a solid should look like and let a gradient find the numbers that make it so. | A solid, written down: afield.lang.solidsl |
| src/ |
Graphics | 1 | 1 | A set of named solid parts, shown in a Three.js scene as something to inspect rather than something to look at. | |
| src/ |
Graphics | 15 | 4 | A double-precision export of a Solid's boundary that keeps Manifold's planar-face provenance. |
|
| src/ |
Graphics | 26 | 13 | Fitting a parametric solid to a point cloud — unoriented samples on a surface, with no signed distances, no normals and no correspondence. | A solid, written down: afield.lang.solidsl |
| src/ |
Polytopes | 14 | 14 | The rank-3 value everything in this package passes around, and the five Platonic seeds to start from. | Polytopes: topology first, coordinates later, A polytope, canonicalised, and sliced into layers |
| src/ |
Graphics | 4 | 4 | Rewriting a SolidExpr into a smaller one that means the same thing — the other half of what making the 3D family symbolic bought, beside a second and third backend. |
A solid, written down: afield.lang.solidsl |
| src/ |
Simulation | 21 | 3 | InflationSolver relaxes an Envelope to equilibrium by raising pressure in steps and minimising the Mechanics energy at each one with Field's L-BFGS. |
Pressure membranes |
| src/ |
Visualization | 8 | 8 | Drawing FLines into a box's output as SVG: Box.lines and Box.l display them, linesToHTML and drawToSVG return the markup, and outputTo draws one line onto a Skia Canvas. |
|
| src/ |
Audio | 81 | 28 | Sonic Pi v5 driven from a Field box, in owned mode. | Sonic Pi |
| src/ |
Audio · internal | 0 | 0 | Sonic Pi's per-line activity, shown in the editor. | |
| src/ |
Audio | 5 | 1 | The #sonicpi editor extension and the vocabulary it completes against. |
|
| src/ |
Examples | 3 | 1 | ||
| src/ |
Audio | 12 | 12 | The handle Field holds while Sonic Pi is playing, and the registration that ties it to a box's lifecycle. | |
| src/ |
Examples | 2 | 1 | ||
| src/ |
Examples | 2 | 1 | ||
| src/ |
Audio | 85 | 58 | Field's pattern algebra as a sequencer for Sonic Pi's engine. | Sonic Pi |
| src/ |
Audio · internal | 3 | 0 | Everything about lowering a Field pattern to Sonic Pi that can be checked with no Sonic Pi running — which, it turns out, is nearly everything worth checking. | |
| src/ |
Audio · internal | 6 | 2 | Smoke tests for Field's Sonic Pi v5 bridge: a protocol test that runs without Sonic Pi installed (synth.sonic-pi.protocol), and a live test that boots a real Sonic Pi when one is present (synth.sonic-pi.live). |
|
| src/ |
Examples | 3 | 2 | ||
| src/ |
Data | 14 | 10 | Sorting networks as data: a SortingNetwork is a wire count plus an ordered list of SortingComparator compare-and-swaps. |
Sorting networks to FLine examples |
| src/ |
Examples · internal | 3 | 1 | ||
| src/ |
Audio | 35 | 35 | Every route Field has from code to something audible, declared — and re-derived from the code. | |
| src/ |
Audio · internal | 20 | 19 | The audio figures on sound.md, each declaring which voice made it. |
|
| src/ |
Workspace | 1 | 0 | ||
| src/ |
Internal · internal | 9 | 3 | A callable block that keeps the Kotlin source it was written as, and can be rebuilt from that source after it has been saved. | |
| src/ |
Workspace | 1 | 1 | A block of code that is also its own source: call it like a function, and it carries the Kotlin text it was written as. | |
| src/ |
Workspace | 20 | 8 | A complete study for any text that draws, so a document can offer an agent the standard study verbs without writing a study class. | Studies |
| src/ |
Workspace · internal | 8 | 7 | Renders Kotlin source files as docs pages: KDoc as prose, declarations as headings, and the bodies in code fences numbered from the lines they really occupy. | |
| src/ |
Workspace · internal | 2 | 1 | Proves that every Kotlin file in the repository can be cut into spans losslessly, and measures how much of it the cutter actually understands. | |
| src/ |
Workspace | 40 | 31 | The language-neutral half of a live-code study: the part of "talking a function into existence" that does not care what the language is. | Studies |
| src/ |
Workspace · internal | 5 | 4 | A box's next Kotlin engine, built while the box is idle. | |
| src/ |
Workspace · internal | 2 | 1 | ||
| src/ |
Graphics | 10 | 10 | The bridges out of Field's plane-geometry results and into the things Field already draws. | Points into structure — Voronoi, Apollonius, contours and clusters, Linear programs as curves, Evolving Creatures |
| src/ |
Audio | 2 | 1 | ||
| src/ |
Math | 91 | 59 | Frequency-domain / spectral analysis family for the stdlib DSP toolkit. | Signal examples: time and frequency |
| src/ |
Synthesis | 56 | 19 | The frequency-domain end of the synth: an FFT, two short-time transforms built on it, and a wavetable that keeps its waveforms as spectra. |
|
| src/ |
Audio AI | 41 | 41 | Spectral embedding: decode, pool, and project the short-time spectral frames stored in an analysis artifact. | Short-time spectral spaces, Visualizers, Displays, and Little Instruments |
| src/ |
Audio AI | 54 | 54 | Speech embedding: decode, pool, and project the learned speech frames stored in an analysis artifact. | |
| src/ |
Audio AI | 6 | 6 | Phase portrait renderers for speech and spectral embedding spaces, synchronized with a shared audio cursor. | Visualizers, Displays, and Little Instruments |
| src/ |
Video | 8 | 8 | A complete demo: SpinningDiffusionDemo draws five rotating curves into a source texture, runs them through a StreamDiffusionView, and shows source and stylized output side by side. |
|
| src/ |
Video | 0 | 0 | The motion provider behind the spinning-curves demo, which derives per-pixel correspondence from the geometry Field drew rather than from the two images. | |
| src/ |
Graphics | 19 | 17 | Editable CPU-side Gaussian splat clouds: SplatCloud holds splats in world-unit scales, 0..1 opacity and linear colour, so cropping, filtering, decimating, transforming and merging are plain arithmetic. |
|
| src/ |
Graphics | 3 | 1 | Tests the splat cloud edit loop: read a compressed PLY into a SplatCloud, query and edit it, preview it, and write it back with CompressedSplatPlyWriter. |
|
| src/ |
Graphics | 6 | 6 | ||
| src/ |
Graphics | 3 | 1 | Tests GaussianSplatRenderer.packInto — the fused compressed-file-to-GPU-layout path — against GaussianSplatRenderer.pack over the PlyFloatTable, which is the same computation the slow way. |
|
| src/ |
Graphics | 16 | 16 | A CPU rasterizer for Gaussian splat clouds, so a splat can be rendered to pixels, tested and captured without a GPU. | |
| src/ |
Graphics | 3 | 1 | Tests SplatRaster at the level of pixels. |
|
| src/ |
Renderers | 28 | 22 | Playing a splat capture over time: the frame reader, the play head, and the box controls that drive it. | |
| src/ |
Renderers | 9 | 9 | The CPU side of a splat cloud: how one is built, where it can be loaded from, and how it is framed before a camera looks at it. | |
| src/ |
Renderers | 31 | 29 | The splat-shader box: a cloud of Gaussian splats uploaded once, a few lines of GLSL that rewrite every splat each frame, and Field's Vulkan splat renderer drawing the result. | |
| src/ |
Renderers | 2 | 1 | ||
| src/ |
Graphics | 6 | 5 | A command line over the CPU splat toolchain, for looking at a capture without opening Field. | |
| src/ |
Data | 172 | 14 | A spreadsheet that lives in a box property, shown in the box's output area, whose formulas are Kotlin expressions. | Spreadsheets |
| src/ |
Data | 11 | 11 | Constraint-solving spreadsheets: cells that hold Ceres variables, formulas that trace back to them, and assertion cells the sheet solves for. | |
| src/ |
Examples | 0 | 0 | ||
| src/ |
Languages | 5 | 5 | Sliders under a box for the numbers in its stack.auto slots, redrawing the box's own shader without a recompile. |
|
| src/ |
Graphics | 24 | 24 | Live numbers for a {{ stack.auto.foo }} slot: every literal in the StackSL becomes a member of a uniform block, foo_numbers, that sliders, Kotlin or a keyframe can turn without a recompile. |
|
| src/ |
Languages | 25 | 23 | Studies of the stack.auto slots in a box's own shaders: checked edits to a slot's StackSL, and pictures of it in its host shader and alone. |
|
| src/ |
Languages | 30 | 7 | The tools an AI4 conversation gets when it is opened on the code of a box whose shaders have {{ stack.auto.<slot> }} slots with programs bound. |
Talking to the StackSL in your shader, StackSL examples |
| src/ |
Languages | 71 | 11 | StackSL — a concatenative shading language that compiles to GLSL, in one file with no runtime. | StackSL examples |
| src/ |
Graphics | 19 | 19 | Host-side entry points for StackSL: compiling the stack language to GLSL, and evaluating it on the GPU sample by sample. | StackSL cheatsheet, StackSL examples |
| src/ |
Languages | 16 | 15 | StackSL's CPU backend: the same GLSL a GPU would run, evaluated one pixel at a time on the JVM, so a StackSL program can be rendered, unit-tested, diffed and documented with no graphics context at all. | |
| src/ |
Languages · internal | 4 | 4 | ||
| src/ |
Languages · internal | 30 | 17 | Compares StackSL's CPU renderer against the GPU: 31 committed gallery programs, each with its fragment template and the 512x512 PNG a real GPU drew for it. | |
| src/ |
Examples | 0 | 0 | ||
| src/ |
Search | 129 | 129 | The resumable StackSL search: StackSLEvolution holds the island populations, the stage schedule and the per-origin credit table between generations, and saves them as a StackSLEvolutionSnapshot. |
Evolving a Shader Toward a Picture |
| src/ |
Search | 110 | 110 | Genetic programming over StackSL token sequences, scored by rendering the program and comparing it to a target image. | Evolving a Shader Toward a Picture |
| src/ |
Examples | 2 | 1 | ||
| src/ |
Search | 2 | 2 | The AI4 chat surface for a StackSLEvolution: stackSLEvolveStudio registers the evolve_* tools on a box and ties the population to the conversation's branches. |
Evolving a Shader Toward a Picture |
| src/ |
Graphics | 52 | 44 | StackSL with its own previous frame: Box.stackFeedback draws a box's stackSL program fullscreen every frame into a float ping-pong target, with the last frame bound as sampler2D state, so prev, sample, gather and the store words (0-> … 3->) read what the program drew a frame ago. |
|
| src/ |
Languages | 29 | 26 | Gradient descent on a StackSL program's own literals: fit a shader to a picture, then write the fitted numbers back into the program. | |
| src/ |
Renderers · internal | 8 | 7 | The StackSL gallery on the docs site: one fullscreen fragment per example program, rendered offscreen into a fixed 512² (OUTPUT_DIM) target. |
|
| src/ |
Languages | 12 | 6 | Where a StackSL study's frames come from: the GPU when a window is running, the CPU reference otherwise. | |
| src/ |
Languages | 28 | 14 | Interval bounds on a fragment shader's colours: a certified range for every pixel in a rectangle, without rendering the pixels. | |
| src/ |
Languages | 9 | 4 | The losses a StackSLFit can descend on: mean squared RGB error, LPIPS perceptual distance, and mixtures of the two. |
|
| src/ |
Languages | 39 | 31 | StackSL as a main language for a box's children: compile on run, draw in the window above, and check each run in as a study revision. | |
| src/ |
Examples · internal | 3 | 0 | ||
| src/ |
Languages | 46 | 38 | The revisioned study behind every StackSL program: checked edits, history on disk, and the measurements a model and a person work from. | |
| src/ |
Examples · internal | 3 | 3 | ||
| src/ |
Languages | 40 | 39 | The single fragment shader a StackSL study renders through, with its CPU, WebGL2 and knob-finding uses. | |
| src/ |
Languages | 38 | 8 | The tools an AI4 conversation gets when it is opened on a StackSL program's stackSL property. |
Talking a shader into existence |
| src/ |
Languages | 8 | 4 | The output card a person uses on a StackSL study: a live WebGL2 preview, sliders for the typed numbers, per-line stages, variants and history. | |
| src/ |
Languages | 6 | 6 | The words of a small language as an editor offers them: names, stack effects and descriptions read from the language's generated words guide, served as completions. | |
| src/ |
Search | 65 | 65 | A language model as a StackSL mutation operator: StackSLWatchmaker shows a model the target and the leaders' renders and turns its reply into candidate programs. |
|
| src/ |
Examples | 8 | 6 | ||
| src/ |
Languages | 18 | 18 | StackSL's dangling wires, made runnable on the CPU: the free-parameter vector a fit descends. | |
| src/ |
Graphics | 43 | 43 | The small vocabulary of FLine construction and styling that sketches and examples reach for first. |
FLine examples (Field graphics), Points into structure — Voronoi, Apollonius, contours and clusters, Three.js scenes with three { … } |
| src/ |
Renderers | 10 | 4 | The deferred renderer the rest of Fabricate is arranged around: the pass bundle, its shaders, and the configuration that sizes them. | |
| src/ |
Renderers · internal | 20 | 7 | The offscreen renders behind Field's graphics documentation: deterministic StandardRenderer scenes captured to PNG, plus the HTML wrapper that puts one in a box output. |
|
| src/ |
Renderers | 13 | 1 | Ten par_shapes primitives, written straight into vertex-pulling buffers as triangle soup. | |
| src/ |
Machine learning | 0 | 0 | Keeping a stateless provider's conversation (local models, OpenRouter) inside its context window. | |
| src/ |
Machine learning | 24 | 24 | The AI4 tools that list, read, show and fork the saved histories of a document, over the same providers the States browser shows a person. | AI4's built-in tools |
| src/ |
Machine learning | 5 | 4 | The States browser of AI4: how a box exposes a saved history with stateTree, and the read-only view of it shared by the browser and by chat references. |
|
| src/ |
Math | 176 | 23 | Descriptive statistics, and the SVG/HTML renderings Field uses to put them in a box output. | Measuring dependence between two signals |
| src/ |
Workspace | 4 | 3 | Heatmap colouring for the numeric values in the pinned console's rolling stat lines. | |
| src/ |
Workspace | 16 | 16 | Matrix construction, terse numeric conversions and half-float packing. | |
| src/ |
Workspace | 7 | 7 | add for FloatBuffer and IntBuffer: append components at the current position and return the buffer, so writes chain. |
|
| src/ |
Workspace | 10 | 10 | Loop, collection and string shorthands, and the truthiness test for a raw property value. | |
| src/ |
Workspace | 4 | 4 | The frame-presentation log: per-frame graphics timing, written to a file while it runs. | |
| src/ |
Workspace | 8 | 8 | Starting and stopping box code from inside box code, and the two block markers the editor reads. | |
| src/ |
Workspace | 12 | 12 | Finding boxes by name, connecting them, and hanging scratch state off one. | |
| src/ |
Workspace | 3 | 3 | HTML-safe syntax colouring for a value printed into a box output. | |
| src/ |
Workspace | 14 | 11 | The property delegates that prop and @exported generate against. |
Running code in a box |
| src/ |
Workspace | 1 | 1 | Running JavaScript in the browser from inside a box. | |
| src/ |
Workspace · internal | 2 | 1 | Emits Field's codebase reference — the browsable answer to "what is already in the box?" — from the KDoc that lives next to the code. | |
| src/ |
Audio | 9 | 9 | Library-wide constants for the Steam Audio bindings: version numbers, the native band count and an explicit load entry point, on SteamAudio. |
|
| src/ |
Audio | 11 | 7 | The SteamAudioContext every Steam Audio object is created from, with the LogCallback and MemoryAllocator hooks it can install. |
|
| src/ |
Audio | 3 | 2 | How Steam Audio failures reach Kotlin: a native status code becomes a SteamAudioError, and anything other than success is thrown as a SteamAudioException carrying it. |
|
| src/ |
Audio | 9 | 9 | Locates and loads the Steam Audio shared library, through SteamAudioNatives. |
|
| src/ |
Graphics | 0 | 0 | ||
| src/ |
Examples · internal | 2 | 1 | ||
| src/ |
Graphics | 9 | 9 | The interface for a stereo head pose that arrives from somewhere other than OpenXR, such as a remote headset. | |
| src/ |
Graphics | 7 | 7 | A smooth map between the two canvases of a stereo pair, so canvas texture such as weave and grain sits on the painted surface in both eyes: StereoWarp. |
|
| src/ |
Machine learning | 13 | 13 | Runs a learned stipple transport on the CPU: a small SiLU network, trained by the optional PyTorch tool in optional/transport-flow, that moves points from a uniform source rectangle toward an image's density. |
|
| src/ |
Graphics | 15 | 15 | Stippling: place exactly N points so that they follow an image's brightness and keep an even, low-correlation ("blue-noise-ish") spacing from one another. | |
| src/ |
Workspace · internal | 0 | 0 | Tells a box's clients when a stop has not taken effect, so the box's status marker can say "asked to stop, not responding". | |
| src/ |
Simulation | 27 | 27 | A rope inside somebody else's SimdVerlet: the one-dimensional sibling of Cloth, and the same shape of thing. |
|
| src/ |
Video | 24 | 24 | Settings for the optional streaming-diffusion backend: where it is installed, the prompt and strength, the seed, frame rate and the temporal options. | Streaming diffusion |
| src/ |
Video | 13 | 13 | The interface a renderer implements to give streaming diffusion per-pixel motion: StreamDiffusionMotionProvider, with the frame and request types it receives. |
Streaming diffusion |
| src/ |
Video | 16 | 16 | The worker process behind a StreamDiffusionView: StreamDiffusionSession starts the Python worker, shares its rings of GPU buffers and semaphores with it, and exchanges JSON control messages. |
|
| src/ |
Video | 1 | 1 | The preflight check for local streaming diffusion: whether this machine can run it, and a sentence saying what is missing when it cannot. | |
| src/ |
Video | 0 | 0 | The temporal half of a diffusion view: it holds the last two results the worker returned and renders the texture the view publishes. | |
| src/ |
Video | 24 | 24 | A render target that sends a source RenderToTexture through the streaming-diffusion worker and returns the result as an ordinary sampled texture, StreamDiffusionView.output. |
|
| src/ |
Visualization | 4 | 4 | What a window is sent to draw the stroke layer: every living stroke's lines as compact JSON, and the point index the strokes use to find each other. | |
| src/ |
Visualization | 42 | 32 | Living strokes: each stroke drawn by hand on the drawing layer becomes an animated, sounding object running code of its own, after the madp line demo. | |
| src/ |
Visualization | 35 | 35 | The drawing vocabulary of a living stroke: Perlin noise, curve maths, and the verbs that turn a list of points into an FLine. |
|
| src/ |
Graphics | 54 | 18 | Structure maps a shader's introspected uniform block or push-constant block onto named Kotlin members, so a box can set, read and bind values by member name. | GPU schemas, Running code in a box |
| src/ |
Graphics | 0 | 0 | Decides what a Kotlin value set on a shader's uniform member is written as, or why the shader cannot be given it. | |
| src/ |
Machine learning | 14 | 10 | Waiting for study build jobs without the model: a box chat that ended its turn on AwaitStudyBuildsRequest is resumed by StudyBuildAwaits when its jobs are done or its deadline passes. |
|
| src/ |
Workspace | 0 | 0 | What a study build's reviewers said, collected from the boxes that own the review surfaces. | |
| src/ |
Workspace | 5 | 5 | Helpers a StudyBuildStage uses to name what it runs: fileIdentity and classIdentity hash the source files or compiled classes behind a build, for its recipeVersion or an input, so results go stale when that code changes. |
Studies |
| src/ |
Workspace | 0 | 0 | The build card a box shows for one study build runner: every stage, with its buttons, progress and diagnostics. | |
| src/ |
Workspace | 64 | 36 | Durable derived builds for a study: named stages whose results are fingerprinted against their inputs and recipe, kept on disk with their attempt history, and reported stale when either changes. | Studies, Let AI4 Wait for Long Builds |
| src/ |
Machine learning | 16 | 16 | AI4 tools over a box's study builds: list, inspect, start, wait for, cancel, await and prune build jobs. | AI4's built-in tools, Studies, Let AI4 Wait for Long Builds |
| src/ |
Workspace | 38 | 25 | Measures and lays out the frames a study renders: brightness, clipping, non-finite pixels, detail, palette, frame-to-frame motion and region-restricted differences, plus labelled contact sheets of tiles for a model to look at. | |
| src/ |
Workspace | 5 | 5 | The renderer interface every study draws through: a program and a list of times in, one CpuRaster per time out. |
|
| src/ |
Workspace | 0 | 0 | Keys for a study card: a snapshot of every number in a program, saved by name, which the card can apply or blend towards. | |
| src/ |
Workspace | 11 | 9 | The language-neutral view of the numbers in a study's source: StudyKnob describes one typed number, and setNumbers applies a batch of new values, keyed by knob index, as a new SourceRevision. |
|
| src/ |
Workspace | 3 | 1 | The common result type of Field's study tools: a revision, a map of measured facts, and the images that accompany them. | |
| src/ |
Workspace | 5 | 5 | Renders a StudyReport as an HTML card, so display("main", report.h) shows a study's revision, message and pictures in a box's output. |
|
| src/ |
Workspace | 15 | 15 | The parts of a live study's variant search that do not depend on what the study draws. | Studies |
| src/ |
Synthesis | 46 | 19 | Subharmonic synthesis: follow the pitch of a roughly monophonic input and generate a new tone at a fraction of it — an octave down at division = 2.0, an octave and a fifth at 3.0, a fifth at 1.5. |
Subharmonic Synthesis: an Octave Below |
| src/ |
Synthesis | 30 | 26 | Offline renders for the subharmonic page (public/docs/subharmonic_sound.md): every clip on it is one of the trackers in Subharmonic.kt run on a real input — a Kotlin bassline, Dirt-Samples one-shots from the pinned subset, or fourteen seconds of Night of the Living Dead (1968, public domain) committed beside the page. |
Subharmonic Synthesis: an Octave Below |
| src/ |
Polytopes | 58 | 43 | Small, plain data classes that reduce the library's big values to something printable. | |
| src/ |
Graphics | 22 | 15 | Push constants as a Kotlin class, and the GLSL that reads them back. | |
| src/ |
Graphics | 3 | 0 | The Vulkan presentation surface for a GLFW window. | |
| src/ |
Graphics | 21 | 21 | The window's presentation chain: SwapChain creates the swapchain images and their views for a surface, acquires the next image each frame and presents it on a Queue.PresentQueue. |
|
| src/ |
Machine learning | 22 | 6 | ||
| src/ |
Polytopes | 32 | 17 | Symmetry as a combinatorial fact, and as something a solver can be asked for. | Polytopes: topology first, coordinates later |
| src/ |
Synthesis | 78 | 20 | The terse surface a box imports: audio { … } to close a graph, .p to make a number a Param, and lowercase names for the things reached for constantly. |
Pure Data, How to make sound in Field |
| src/ |
Audio · internal | 0 | 0 | ||
| src/ |
Graphics | 41 | 34 | Field's end of Syphon, the macOS standard for sharing GPU frames between applications: a SyphonServer publishes frames that Resolume, TouchDesigner, MadMapper, OBS (with its Syphon source), VDMX or Max can receive, and a SyphonClient receives what they publish. |
Syphon: sharing frames on macOS |
| src/ |
Graphics | 9 | 4 | Publishes every frame a RenderToTexture draws to a SyphonServer without the CPU touching the pixels: the frame is copied GPU-side into an IOSurface (on the same command buffer that drew it), and once that frame's GPU work has completed Syphon blits the IOSurface into its own shared one. |
|
| src/ |
Internal · internal | 9 | 3 | The locator and foreign-function bindings for native/field-syphon, the optional macOS library under SyphonServer and SyphonClient. |
|
| src/ |
Graphics | 19 | 6 | A SyphonClient's frames as a texture for a shader to sample: bind this object itself as a sampler2D (prop<SyphonTexture>(name) = client.texture()). |
|
| src/ |
Visualization | 35 | 35 | Tabular output — the structure, and the one renderer for it. | Frames and the animation loop, How completions are ranked, DataFrames in a Box |
| src/ |
Workspace · internal | 8 | 1 | ||
| src/ |
Graphics | 19 | 19 | The template engine behind {{ slot }} in a Field shader: a Jinja-shaped expander written against the Kotlin standard library alone, which a shader stage's source runs through before shaderc sees it. |
|
| src/ |
Math | 64 | 29 | Continuing a multichannel time series live, from any backend that can propose a future. | Continuing a Gesture: Sequence Memory and Forecasting |
| src/ |
Workspace · internal | 10 | 2 | A real terminal in the browser: /terminal.html (xterm.js) over the /pty/<id> WebSocket, with a pseudo-terminal (pty4j) on this side. |
|
| src/ |
Visualization | 15 | 12 | A real terminal in a box's output area: terminal starts a process in a panel and returns a FieldTerminal that box code can type into, read, and kill. |
A Terminal in a Box |
| src/ |
Examples | 2 | 1 | ||
| src/ |
Simulation | 19 | 13 | A closed surface turned into tetrahedra, with its sharp edges intact. | Filling a solid: tetrahedral meshing with TetGen |
| src/ |
Graphics | 1 | 1 | ||
| src/ |
Simulation | 6 | 6 | Ways of looking at a TetMesh: its element quality, a slice of it, and the triangles that draw it. |
Filling a solid: tetrahedral meshing with TetGen |
| src/ |
Graphics | 38 | 19 | Sampled textures for Field 4 shaders: images decoded from disk or memory, CPU-streamed frames, and GPU-writable storage images. | |
| src/ |
Graphics | 4 | 1 | TextureSampler wraps a VkSampler: filtering, mipmap mode, anisotropy and per-axis address modes for sampling a texture in a shader. |
|
| src/ |
Graphics | 38 | 35 | One 3D output for everything Field can draw: Box.three puts meshes and FLines in one orbitable Three.js scene. |
Three.js scenes with three { … }, Geometry from disk, Polytopes: topology first, coordinates later |
| src/ |
Examples | 2 | 1 | ||
| src/ |
Graphics | 96 | 30 | Measure, section and explode controls for the Three.js viewer, so a 3D preview of something to be built can be inspected without re-running its box. | FLine examples (Field graphics), Three.js scenes with three { … }, Point to geometry, keep the context |
| src/ |
Graphics | 132 | 49 | The Three.js viewer's server side: the geometry payload it is sent, the live state of each view, and Box.threeLines, which puts a viewer in a box's output area. |
Three.js scenes with three { … }, FLine examples (Field graphics) |
| src/ |
Graphics | 4 | 4 | Presentation overrides for a named part of a three-dimensional view. | |
| src/ |
Graphics | 0 | 0 | Geometry identity for a three-dimensional view: what a review note is pinned to. | |
| src/ |
Graphics | 0 | 0 | Stores the screenshots a geometry review note carries as PNG files beside the document rather than as base64 inside it. | |
| src/ |
Graphics | 107 | 88 | The intermediate representation the Three.js viewer draws: a ThreeDrawable is some geometry plus how to draw it. |
Three.js scenes with three { … } |
| src/ |
Graphics | 7 | 5 | What a Three.js view puts on the wire, and what it refuses to. | |
| src/ |
Patterns | 171 | 37 | Field's pattern language: a compact text notation for musical structure, an exact algebra over cycles, and a scheduler that turns the result into events in seconds. | Patterns: writing rhythm as a function of time, A pattern as a function generator, Petri nets |
| src/ |
Simulation | 8 | 1 | Maps tile slots of a afield.graphics.render.TileResidency onto pixel coordinates in one GPU atlas texture, with a halo border around each tile. |
|
| src/ |
Simulation | 15 | 4 | Bookkeeping for a scrolling window of world-aligned tiles: TileResidency maps tile coordinates to reusable toroidal slots and reports which slots changed after a move. |
|
| src/ |
Networking | 18 | 12 | The SMPTE timecode value types: TimecodeRate (24, 25, 29.97 drop-frame, 30) and Timecode, a frame count at a rate with HH:MM:SS:FF labelling, parsing and arithmetic. |
SMPTE Timecode: LTC and MIDI Time Code |
| src/ |
Networking | 15 | 14 | TimecodeClock gives a box a timecode it can read at any moment, either generated or following incoming LTC audio or MIDI Time Code. |
|
| src/ |
Graphics | 8 | 8 | A hand movement sampled in time, with pressure and pen orientation, which drives a brush: TimedGesture and its TimedGesture.Sample. |
|
| src/ |
Math | 213 | 213 | Streaming, time-domain filters over Float signals — the sample-at-a-time counterpart to the frequency-domain code in spectral.kt. |
Signal examples: time and frequency |
| src/ |
Math | 16 | 4 | Mistral's pretrained Timestral forecaster behind this package's session interface, running in a Python worker that Field starts and owns. | |
| src/ |
Visualization | 0 | 0 | The HTML shell of Field's one time-axis viewer, shared by SignalViewer, Fn.plot, AudioVisualizer and the Audio AI analysis views. |
|
| src/ |
Graphics | 48 | 3 | GPU-side profiling for the Vulkan renderer: per-frame query pools for timestamps, pipeline statistics and, where the driver offers VK_KHR_performance_query, performance counters. | |
| src/ |
Execution | 1 | 1 | ||
| src/ |
Languages | 5 | 5 | One TokenKind for every lexeme FieldML has, and the Token that pairs a kind with the text it was read from. |
|
| src/ |
Audio | 4 | 3 | The typed Kotlin/JS view of Tone.js, the computer-music library loaded by the RemoteAR browser head, selected in a box with the // {{ tone }} profile. |
|
| src/ |
Machine learning | 20 | 3 | Complete tool results that are too large for a transcript, kept whole outside the model's context. | |
| src/ |
Machine learning | 23 | 6 | Tool metadata answers three questions beyond the schema: which namespace a tool belongs to, how the model discovers it (ToolExposure), and what calling it does (ToolEffect). |
|
| src/ |
Workspace | 18 | 13 | The tool pool: a local library, shared across projects, of tools written in box Kotlin, with their tests and the evidence those tests produced. | |
| src/ |
Machine learning | 0 | 0 | The sandbox a tool program runs in: one RunToolProgramRequest's JavaScript, in a fresh GraalJS context that can reach the conversation's tools and nothing else. |
|
| src/ |
Machine learning | 42 | 12 | RunToolProgramRequest is one tool whose argument is a short JavaScript program, so a model that would have spent twelve rounds calling twelve tools spends one. |
|
| src/ |
Machine learning | 0 | 0 | The check that turns a deadlocking aiTool call into an error message. |
|
| src/ |
Machine learning | 376 | 43 | The request and result classes of the tools Field's AI agent can call, and the registry that dispatches a call by name to its handler. | AI4's built-in tools |
| src/ |
Polytopes | 91 | 63 | The abstract incidence complex — the authoritative value in afield.geometry.polytope, and the one layer that knows nothing about coordinates. |
Polytopes: topology first, coordinates later |
| src/ |
Audio AI | 1 | 1 | One explicit analysis request, followed from submission to durable result. | |
| src/ |
Synthesis | 33 | 6 | Pitch-tracked phase for voice banks: a tracker reduces one periodic sound to phase, phase advance, pitch, level and confidence, and a bank gives every voice its own phase accumulator. | |
| src/ |
Synthesis | 23 | 6 | An oscillator bank that follows a tracked phase: TrackedPhaseBank renders a list of PhaseVoices, each advancing at a ratio of the pitch a PhaseTracker reports. |
Subharmonic Synthesis: an Octave Below |
| src/ |
Synthesis | 3 | 2 | Shares one phase-tracking analysis of a signal between several tracked-phase banks in a graph. | |
| src/ |
Audio | 55 | 1 | Stores the output of a TrackingResonatorBank run as a TrackingResonatorAnalysis, with per-frame frequencies and powers, and reads and writes it in a small binary format. |
|
| src/ |
Examples | 1 | 1 | ||
| src/ |
Math | 30 | 23 | Sequence memory for low-dimensional continuous time series: remember one or a few demonstrations, cue the memory with a recent trajectory, and let it continue in a related style while a performer takes over channels. | Continuing a Gesture: Sequence Memory and Forecasting |
| src/ |
Workspace · internal | 18 | 0 | Keeps a per-document log of what ran in each box, for activity summaries and the transcript view. | |
| src/ |
Polytopes | 82 | 63 | The Conway operator algebra: thirteen named operations that rewrite a polyhedron's combinatorics, each paired with a policy for giving the result coordinates. | Polytopes: topology first, coordinates later |
| src/ |
Graphics | 29 | 28 | Optimal transport between point sets: which source goes to which target, or how much of each source goes to each target, at the least total cost. | Optimal Transport |
| src/ |
Data | 10 | 3 | A minimal TUIO receiver. | |
| src/ |
Machine learning | 18 | 10 | How a tool result ends a model's turn early so the conversation can wait for study builds without spending model calls. | |
| src/ |
Machine learning | 10 | 10 | Finding tutorial code: a worked example of box code to start from. | |
| src/ |
Languages | 92 | 32 | FieldML's syntax tree after inference: the same shape as the surface tree in afield.lang.fieldml.ast, with a Type on every expression and on every pattern. |
FieldML stage by stage |
| src/ |
Languages | 29 | 21 | The types FieldML infers, and the two ways one is printed back to a reader. | |
| src/ |
Graphics | 107 | 100 | Text as geometry: a string becomes contours, and from there everything Field already does to geometry applies to letters. | Typography as geometry — a string becomes contours, A Word Cut as a Stencil, Datalog in a box |
| src/ |
Graphics | 31 | 31 | The bridges out of a TextLayout and into the four families Field already has. |
Typography as geometry — a string becomes contours |
| src/ |
Examples | 2 | 1 | ||
| src/ |
Audio AI | 22 | 22 | Request builder for source-conditioned Stable Audio 3 generation, with LoRAs named by digest. | Field Audio AI |
| src/ |
Math | 47 | 13 | Physical units for Field's spreadsheet-style numbers. | |
| src/ |
Graphics | 4 | 4 | UnixFdPass sends file descriptors to another process over a Unix domain socket with SCM_RIGHTS, which is how Field hands exported GPU memory to its Linux encoder helper. |
|
| src/ |
Workspace · internal | 11 | 8 | Field is distributed as source: you clone it and you build it. | |
| src/ |
Workspace | 8 | 5 | Reads, generates and live-reloads ~/.afield/keybindings.yaml, the user's keyboard shortcut overrides, and sends the resolved bindings to connected clients. |
|
| src/ |
Workspace · internal | 3 | 1 | Serves the user's CSS theme from ~/.afield/theme.css to the browser and pushes it again whenever the file changes. |
|
| src/ |
Workspace | 14 | 1 | ||
| src/ |
Graphics | 5 | 5 | Small helpers shared by the Vulkan renderer: the host OS, memory-type selection and result checking. | |
| src/ |
Workspace · internal | 2 | 1 | ||
| src/ |
Workspace · internal | 1 | 0 | ||
| src/ |
Workspace | 8 | 7 | LazyVar, a lazy value that can also be assigned, and its lazyVar factory. |
|
| src/ |
Workspace | 20 | 0 | Property delegates that keep a single String, Int or Double value across Field restarts, one small file per property name under .field/ in the working directory. |
|
| src/ |
Visualization | 10 | 8 | The default value display for Field output areas: a Kotlin value in, a compact HTML fragment out. | Agent transcript gallery, DataFrames in a Box, Visualizers, Displays, and Little Instruments |
| src/ |
Math | 19 | 18 | Building a Variable Markov Oracle over a recording, and asking it where a performance could continue from. | |
| src/ |
Graphics | 22 | 22 | VertexBuffer is a classic vertex buffer with a host-side staging copy that is transferred to device-local memory before drawing. | |
| src/ |
Graphics | 24 | 11 | The topology of a 2-D flow field: where it stands still, and the curves that divide it up. | Vector field topology |
| src/ |
Graphics | 26 | 24 | Decodes video frames with FFmpeg into P010 or RGBA8 buffers (VideoFrame) for VideoTexture. |
|
| src/ |
Graphics | 3 | 3 | Frame-number arithmetic for constant-frame-rate video, shared by the code that asks for a frame and the code that reports which frame a decoder produced. | |
| src/ |
Video | 2 | 2 | Reading a video file frame by frame as Field images, through ffmpeg. | |
| src/ |
Graphics | 29 | 25 | Plays a video file into Vulkan textures that a shader can sample, with VideoTexture.load, VideoTexture.play, VideoTexture.pause, VideoTexture.seek and VideoTexture.unload. |
|
| src/ |
Examples | 5 | 5 | ||
| src/ |
Workspace | 18 | 18 | A read-only view of box text in saved documents as addressable files, so tools that expect files can read a box's code or shaders without opening Field. | |
| src/ |
Graphics | 19 | 17 | See a Live Metal box's geometry { … } on your desk, without a headset. |
|
| src/ |
Graphics | 2 | 2 | The in-Field half of VisionGeometryPreview: turning "my mesh only exists in the headset" into a picture in the box you wrote it in. |
|
| src/ |
Examples | 3 | 2 | ||
| src/ |
Graphics | 76 | 38 | Live Metal: the channel that pushes a box's Metal program down to a visionOS head, which compiles and renders it there. | |
| src/ |
Graphics | 5 | 1 | Kotlin/JS declarations for the JavaScriptCore runtime owned by Field4Vision's Live Metal renderer. | |
| src/ |
Examples · internal | 2 | 1 | ||
| src/ |
Graphics | 6 | 5 | The offline half of "will this Live Metal program actually run?". | |
| src/ |
Graphics | 91 | 37 | The pose uplink: head and per-eye viewing geometry travelling from a visionOS head to this Field process, so that the Vulkan renderer on this machine can draw the frame the headset is about to display. | Field on Apple Vision Pro |
| src/ |
Graphics | 25 | 12 | Where the time goes between a head moving and the resulting image reaching it. | |
| src/ |
Examples · internal | 2 | 1 | ||
| src/ |
Graphics | 15 | 3 | Drives Field's stereo rendering from a visionOS head's uplinked pose — the consumer end of VisionPoseStream. |
|
| src/ |
Examples · internal | 2 | 1 | ||
| src/ |
Examples · internal | 2 | 1 | ||
| src/ |
Synthesis | 52 | 3 | How to look at the audio. | Visualizers, Displays, and Little Instruments |
| src/ |
Visualization | 40 | 32 | Grouped controls whose value is more than one number: multisliders, matrices, range sliders, menus and recorded gestures. | Visualizers, Displays, and Little Instruments, Field from your phone |
| src/ |
Graphics | 2 | 2 | ||
| src/ |
Machine learning | 2 | 2 | Local speech-to-text for AI4 push-to-talk. | |
| src/ |
Languages | 45 | 26 | StackSL's volumetric noise family: noise3, fbm3, fbmd3, warp3, curl3, worley3, noise4, fbm4 — eight words that work as true 3D and 4D fields. |
|
| src/ |
Examples | 3 | 2 | ||
| src/ |
Graphics | 63 | 63 | Practical 3D Voronoi and approximate 3D multiplicatively weighted Voronoi ("CircularDirichlet") for Kotlin + Field linalg. | Points into structure — Voronoi, Apollonius, contours and clusters, Meshes and 3D geometry |
| src/ |
Graphics | 66 | 11 | A block of GPU memory, and the ways to hand one to a shader. | |
| src/ |
Graphics | 4 | 4 | Exports a render-to-texture color image as a POSIX file descriptor, so the Linux field-encode-linux helper can import it into CUDA and encode it with NVENC. |
|
| src/ |
Graphics | 3 | 0 | Debug names and command-buffer labels for Vulkan objects, as seen in validation messages and frame debuggers such as RenderDoc. | |
| src/ |
Graphics | 28 | 27 | Reports what Vulkan this machine offers: loader, instance, devices, validation layers, the SDK and, on macOS, the KosmicKrisp driver. | |
| src/ |
Graphics | 41 | 41 | Watercolour and ink on paper: the Paper kinds, WaterPigments and their Watercolors palette, the WaterPaint mixed from them, and the reports and ledgers a wash returns. |
Watercolour and ink, Brushes with moving hairs |
| src/ |
Examples | 6 | 3 | ||
| src/ |
Audio | 7 | 4 | Reads a WAV file into a mono FloatArray: WavFloatArrayLoader.loadWavToFloatArray accepts PCM (8, 16, 24 and 32 bit) and IEEE float (32 and 64 bit) files and keeps the left channel of a stereo file. |
|
| src/ |
Audio | 7 | 6 | Writes float signals as 16-bit PCM WAV: WavFloatArrayWriter writes mono or stereo files, optionally normalizing to a peak, and encodeMono16 returns the WAV bytes for display(...) to play in a box. |
|
| src/ |
Examples | 0 | 0 | ||
| src/ |
Imaging | 2 | 1 | ||
| src/ |
Examples | 2 | 1 | ||
| src/ |
Graphics | 14 | 7 | Exposes a webcam as an RGBA Vulkan texture, captured through OpenCV. | |
| src/ |
Workspace | 0 | 0 | ||
| src/ |
Imaging | 34 | 27 | WebRTC video for Field 4 graphics: publish a render target to a classroom, and sample anyone's published stream as a texture. | WebRTC Streams |
| src/ |
Imaging | 1 | 1 | Publishing what Field renders as a WebRTC stream, and the colour conversion that makes the stream look like the window. | |
| src/ |
Imaging | 1 | 1 | The signalling a Field WebRTC sink or source gets from its own server: the /ws/webrtc-signaling?network=<id> WebSocket its page exchanges signalling over, and /api/webrtc-config?network=<id>, which answers with that network's login and ICE servers. |
|
| src/ |
Imaging | 6 | 3 | WebRTC signalling for Field's sources and sinks: the networks a page can join, the relay on Field's own server, and the bridge to an aaaframe classroom. | |
| src/ |
Data | 118 | 36 | Single-file, dependency-free Wave Function Collapse for Kotlin/JVM. | Wave Function Collapse examples |
| src/ |
Data | 37 | 29 | The bridge from Wave Function Collapse into the things Field already displays. | Wave Function Collapse examples |
| src/ |
Examples | 41 | 28 | ||
| src/ |
Examples · internal | 3 | 0 | ||
| src/ |
Workspace | 4 | 3 | why.speed, a completable way to ask where a box's prop-declared value comes from. |
|
| src/ |
Workspace | 16 | 14 | The value a box gets back when it asks where one of its inputs comes from. | |
| src/ |
Graphics | 35 | 14 | The GLFW window a Vulkan renderer draws into, with its input listeners and a framebuffer-to-PNG capture. | |
| src/ |
Graphics | 0 | 0 | ||
| src/ |
Graphics | 11 | 11 | The pointer over a renderer window and the window's size, in window points, read once a frame. | |
| src/ |
Imaging | 3 | 1 | Windows import path for Electron browser frames: wraps a D3D11 shared texture, passed as an NT handle, in a Vulkan image that Field can copy from. | |
| src/ |
Workspace · internal | 3 | 0 | Smoke for the experiment that wires the Wither compiler plugin (kyay10/wither) into the K2 REPL (KotlinInterface2). |
|
| src/ |
Imaging | 9 | 4 | ||
| src/ |
Internal · internal | 0 | 0 | ||
| src/ |
Internal · internal | 0 | 0 | ||
| src/ |
Workspace | 0 | 0 | Where Field remembers the document you had open, keyed by workspace rather than by checkout. | |
| src/ |
Workspace | 11 | 11 | The shared box and the persistent preferences a workspace project gives every document in it. | |
| src/ |
Machine learning | 34 | 2 | WorkspaceSearchRequest is the agent tool that finds literal text in exactly one WorkspaceSearchScope: the current document's files, its history, the whole workspace, or Field's own Kotlin source. |
|
| src/ |
Machine learning | 1 | 0 |
Scope
This catalog covers the JVM Kotlin source tree. Shared protocol and browser source sets, private personal code and generated vector algebra are separate from that inventory. The generated afield.math.linalg API has its own reference, with Linear algebra in Field for the intuition.
How to read a symbol you find here
Type its name in a box and press ctrl-space: the completion documentation panel shows the same KDoc with every resolvable [Symbol] reference turned into a link you can follow, plus a jump straight to the definition's line in the source. This reference and that panel read declarations through the same parser. Entries marked internal here may be hidden from autocomplete; use their source links to inspect the implementation.
To search rather than browse, see The Semantic Index.