Infinite README

The project's README from github.com/n1m21n/Infinite. As one markdown file: README.md.

Infinite

Infinite: a DAW for you. Visuals, music and code on one canvas.

Discord YouTube Tutorial Platform License n1m21n%2FInfinite | Trendshift

Infinite is a free, open-source audiovisual workstation made by Naman Soni (n1m21n). A unified node-based audiovisual modular workstation for macOS, Windows, and Linux. Real-time GPU image/video compositing, procedural 3D geometry and physics, and a full modular synthesizer rack with native AU and VST3 plugin hosting — all interconnected through a universal modulation graph. Most nodes do one fixed thing; Field, Infinite's embedded programming language, lets you write what a node does instead.

Infinite Screenshot

Download

macOS Windows x64 Windows ARM64 Linux

Always the newest release. All files, checksums and release notes are on the Releases page.


Video Tutorial

New to Infinite? Watch the full walkthrough and workflow tutorial on YouTube:
🔗 Infinite Video Walkthrough & Tutorial


Highlights


Node Library Overview

Infinite features 300+ modular node types:

Domain Key Nodes
2D & Video Image, folder Slideshow, Video (hardware-accelerated), Syphon In / Spout In, NDI In, Paint/Draw canvas, GLSL Formula editor, Sketch (JavaScript-drawn images, with SVG animation), Shapes (SDF), Noise & Gradient Ramps
2D FX & Grading Blur, Bloom, Glitch (6 modes), Twirl, Ripple, Displace, Halftone, Curves (RGB/Luma splines), Dither, Color Ramp, .cube LUTs, Gradient Map, Palette extraction
Compositing & Masks Blend (32 modes), Layer Stack, Remove Background (on-device ML segmentation), Chroma/Luma Key, Feedback loop, Reaction-Diffusion, Resynthesize
3D Geometry & FX Primitives, USD/OBJ/PLY/STL/glTF/GLB import, 3D Text, 3D Curves, Point Distribution, Sketch 3D (JavaScript-built meshes), Mesh Deconstruction, Delaunay Mesh, Voronoi Cells, Decimate, Curve Ops, Taubin Smooth, Array, Instancing, Metaballs
3D Scene & Render Camera (orbit/perspective/ortho), Lights, 32-bit HDRI Environment, PBR Materials, ACES Tonemapping, Multisampled Antialiasing
Synths & Sound Wavetable synth, Metallic modal resonator, Granular synth, PaulStretch, Molder / Grain Molder (spectral resynthesis), Sampler, Slicer (onset-detecting sample chopper), 8-track Drum Sequencer, 16-pad MPC sampler (polyphonic, per-pad mode / tempo-quantised sync / volume / pitch / pan / speed / fine tune / fades, all modulatable), Looper (record / overdub, tempo-synced, latency-compensated, Sampler-style playback controls), Multi-waveform Oscillator
Field Language Field Modifier, Field Primitive, Field Effect, Field Synth, Field Pixel, Field Graph — see below
Notes & MIDI Live MIDI input/clock, Arpeggiator, Note Sequencer, Chorder, Strum, Bouncing Balls (physics notes), Humanizer, Quantizer, MIDI File player, MIDI Out (hardware and virtual ports, CC and clock), Field Notes (a Field script that plays notes)
Audio FX & Plugins AU / VST3 Plugin Host, Filters, EQ, Dynamics, Lookahead Limiter, Delay, Reverb, Drive/Saturation, Pitch & Frequency Shifters, Chorus, Phaser, Formant
Modulators & Analysis LFO, Random, Pattern CV, Envelope Follower, Math, XY Pad, Audio Analyze (8-band FFT / onset), Image Analyze (luminance / motion), Hand / Face / Pose Track (camera to modulators, via the Tracking pack)
Output & I/O Spatial Mixer (3D headphone mix with head tracking), PNG snapshot, H.264/MOV video recording with synchronized audio, Syphon Out / Spout Out, NDI Out

The full catalogue, including every node's pins and parameters, is in the Node Reference Manual.

Infinite also renders headless, with no window: pictures, video and sound straight from a .inf text file on the command line. See the Headless User Guide (Markdown).

Infinite Modular Node Graph


Field: write what a node does

Every other node in Infinite does one fixed thing — a Blur node blurs, a Delay node delays. Field nodes are different: you write a short kernel, and Field figures out where it runs from what the code touches.

col = vec3(uv.x, uv.y, 0.5)              // once per pixel, on the GPU — a shader
P.y += sin(P.x * 4.0 + t) * 0.2          // once per point in a mesh — a geometry deformer
out = in * gain                          // once per audio sample — a DSP effect

That's the one idea underneath the whole language: a kernel, run once per element of a domain, forever. You never declare where it runs — the domain (and therefore the backend it compiles to) is inferred. Field currently spans five domains and seven node types:

Node Domain What it does
Field Modifier element Per-vertex kernel over existing geometry — modifies P, N, uv, Cd and custom attributes
Field Primitive element Generates procedural point geometry from scratch (Circle, Spiral, Grid Lattice, Fibonacci Sphere, Helix, Torus Knot)
Field Effect sample Per-sample audio DSP kernel; in/out, state for per-voice memory, param for knobs
Field Synth sample Polyphonic note-driven synth voice using the same sample compiler, with freq/gate in place of an audio input
Field Pixel pixel Per-pixel kernel compiled straight to GLSL; state cells with [wrap] support feedback and stencils
Field Notes sample Per-sample note kernel: note(pitch, vel, len) sends notes out, and tick(div), deg(d), rand() and beat read the transport
Field Graph graph Runs once at edit time — emit()/connect()/set()/place() declaratively mount and wire real Infinite nodes into a bundle ("Instrument Mode" collapses it to one box; "Unpack to Canvas" expands it back out)

Any element/pixel/sample kernel can also declare dynamic pins right in its code, adding real, cable-wireable, save/load-safe I/O to the node without touching C++. Finished devices — kernel plus params plus presets — save, load, export and import as portable .field files, so a Field patch is shareable like an audio plugin preset. The full language reference — syntax, domain-transfer operators, reserved words, and the complete node/format reference — is in the Field Language Manual.

Field Pixel Editor


Installation & Quick Start

Pre-built App (macOS, Windows & Linux)

Download the latest build for your platform from GitHub Releases: Infinite.dmg for macOS, Infinite-windows-x64.zip / Infinite-windows-ARM64.zip for Windows, or Infinite-x86_64.AppImage for Linux.

macOS (Infinite is not notarized by Apple, so the first launch needs one extra step)

  1. Open the DMG and drag Infinite.app to Applications.
  2. Double-click Fix & Open Infinite.command in the DMG and press y. It clears the download flag on Infinite only, then opens it.
    • Or do it by hand: try to open Infinite once, then System Settings → Privacy & Security → Open Anyway (macOS 15 and later), or right-click Infinite.app → Open (older macOS).
    • Or in Terminal: xattr -dr com.apple.quarantine /Applications/Infinite.app

Windows

  1. Unzip the x64 or ARM64 build for your CPU.
  2. Run Infinite.exe. The build is not code-signed, so Windows SmartScreen may say "Windows protected your PC": click More info, then Run anyway. It asks once per download.

Linux

  1. chmod +x Infinite-x86_64.AppImage
  2. Run ./Infinite-x86_64.AppImage. It bundles the static AppImage runtime, so no libfuse2 install is needed. If it's running in a container or on a system with no /dev/fuse, use ./Infinite-x86_64.AppImage --appimage-extract-and-run instead.

Build from Source

macOS

Requirements: CMake 3.16+ and Xcode Command Line Tools.

git clone https://github.com/n1m21n/Infinite.git
cd Infinite
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j8
open build/Infinite.app

To create a standalone DMG installer, run ./package.sh.

Windows

Requirements: CMake 3.16+ and Visual Studio 2022/2026 (MSVC v143+, Desktop development with C++).

git clone https://github.com/n1m21n/Infinite.git
cd Infinite
cmake -S . -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release
.\build\Release\Infinite.exe

To create a packaged portable folder, run powershell -ExecutionPolicy Bypass -File package.ps1.

Linux

Requirements: CMake 3.16+, a C++20 compiler (Clang or GCC), Ninja, and the dev packages in tools/linux/deps-apt.sh (X11/GLFW/ALSA/fontconfig headers etc.). x86_64, glibc ≥ 2.35 (Ubuntu 22.04+ or equivalent) if you want the result to match the published AppImage's floor.

git clone https://github.com/n1m21n/Infinite.git
cd Infinite
tools/linux/deps-apt.sh   # installs build + runtime deps via apt
tools/linux/build.sh      # configures + builds build-linux/Infinite
./build-linux/Infinite

To package a portable AppImage, run tools/linux/package-appimage.sh build-linux artifacts-linux. A containerized dev environment (no local dep install needed) is available via tools/linux/local.sh build — see that script for details.


Architecture

src/
├── core/         # INode DAG engine, ImageCable, Transport, Modulation, GLUtil, Mesh
├── nodes/        # 160+ Node implementations (2D, 3D, Audio, Synth, Notes, Modulation)
├── audio/        # Audio engine, DSP kernels, Wavetable core, Plugin hosting (AU/VST3)
└── platform/     # OS layer: macOS (CoreAudio/AU/AVFoundation) | Windows (WASAPI/WinMM/Media Foundation/GDI+) | Linux (ALSA/GLFW/X11/VST3)

See ARCHITECTURE.md and docs/CODE_STANDARDS.md for deeper implementation guides.


Linux-specific known limits

The Linux build has the same node graph and file format as macOS/Windows, with these platform gaps:


Contributing

Contributions, bug reports, and node ideas are welcome!


Prior Art & Acknowledgements

The tools and papers Infinite builds on are named in ACKNOWLEDGEMENTS.md, and the people who contributed are credited in CONTRIBUTING.md.


Cite & credit

If you write about, review or build on Infinite, please credit it as: Infinite, by Naman Soni (n1m21n), https://infinitedevices.org. GitHub's "Cite this repository" button uses CITATION.cff.


License

Infinite's source code is licensed under the MIT License.
Default builds include VST3 plugin hosting linking the Steinberg VST3 SDK (GPLv3). Build with -DINFINITE_ENABLE_VST3=OFF for a pure MIT binary.

Infinite (n1m21n/Infinite)

Searching Database…

这是什么?Infinite 是一个免费开源的节点式视听工作站,把实时 GPU 视频/3D 合成、模块合成器机架和原生插件宿主结合在一起,全部在同一个 patch 里连线。
这是传统应用,还是可视化编程/节点图工具?它是一个节点图编辑器:你在画布上连接 300 多种节点类型,底层运行着两个同步引擎——负责视觉的 GPU 纹理管线和采样级精确的音频图,两者都挂在全局 BPM 走带上。
怎么让它跑起来?从 GitHub Releases 下载对应操作系统的预构建版本(Infinite.dmg、Infinite-windows-x64/ARM64.zip 或 Infinite-x8664.AppImage),启动前先完成对应平台的解除封锁步骤。
Linux 版的功能和 macOS、Windows 版一样吗?不一样——Linux 版缺少 Syphon/Spout 零拷贝视频输入输出、Audio Unit(AU)插件宿主(只有 VST3)、LV2 宿主和复杂文种文本整形(没有 HarfBuzz),而且只提供 x86-64 版本,没有 arm64 构建。
macOS 或 Windows 版在打开之前需要额外的信任步骤吗?需要——两个构建都没有签名:在 macOS 上,首次启动前必须清除隔离标志(用自带的脚本或 xattr 命令);在 Windows 上 SmartScreen 会拦截它,你需要点击“仍要运行”。
Field 是什么?Field 是 Infinite 内置的编程语言:节点不再只做一件固定的事,你写一小段内核,Field 会推断它运行在五个领域(element、pixel、sample、graph)中的哪一个,并把它编译到匹配的后端,例如像素用 GLSL。
它自带多少种节点类型?Infinite 包含 300 多种模块化节点类型,覆盖 2D/视频、3D 几何与物理、音频合成与效果、插件宿主、MIDI,以及分析/调制。
Infinite 能不开窗口运行吗?可以,它可以在命令行直接从 .inf patch 文件做无头渲染,在没有任何 GUI 的情况下产出图像、视频和音频。
能把我自己的 VST/AU 插件接进 patch 吗?可以——Infinite 以原生 GUI 窗口承载第三方 Audio Unit(macOS)和 VST3(macOS/Windows/Linux)插件,它们的参数可以像任何原生节点一样被自动化或调制。
Creator
n1m21n
Size
1.3 GB
Stars
279
Age
2mo
Commits · 90 Days