Metadata-Version: 2.4
Name: infinite-daw
Version: 0.6.0
Summary: Python interface for Infinite: real-time modular audiovisual workstation by Naman Soni
Home-page: https://infinitedevices.org
Author: Naman Soni
Author-email: contact@infinitedevices.org
License: MIT
Project-URL: Source, https://github.com/n1m21n/Infinite
Project-URL: Documentation, https://infinitedevices.org
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Multimedia :: Sound/Audio
Classifier: Topic :: Multimedia :: Graphics
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: project-url
Dynamic: requires-python
Dynamic: summary

# Infinite Python SDK (`infinite-daw`)

Official Python interface for **Infinite**, the free, open-source modular audiovisual DAW and engine created by **Naman Soni** ([infinitedevices.org](https://infinitedevices.org)).

---

## Installation

The package is not on PyPI yet. Run it from a checkout:

```bash
git clone https://github.com/n1m21n/Infinite
cd Infinite/tools/python_sdk
python3 -c "import infinite"
```

The SDK needs the Infinite app. It finds it through `$INFINITE_BIN`, `/Applications/Infinite.app`, a build folder in the checkout, or `PATH`; on Windows and Linux set `INFINITE_BIN` to `Infinite.exe` / `Infinite`.

---

## Quickstart

### 1. Render an Audio-Reactive Video in 2 Lines

```python
import infinite

# Synthesize modular audio and render high-resolution MP4 video
res = infinite.render_video(
    glsl="p = (uv - 0.5) * aspect; r = length(p); col = vec3(sin(r * 12.0 - t * 2.0));",
    out_mp4="my_visual.mp4",
    duration=5
)
print("Rendered:", res["video_path"])
print("Credit:", res["credit"])
```

### 2. Render 2D JavaScript Canvas Sketches

```python
import infinite

sketch_code = """
param("points", 5000, 1000, 10000);
function draw(t) {
  background(0.02, 0.02, 0.05);
  fill(hsl(0.55 + 0.2 * sin(t), 0.8, 0.6, 0.5));
  circle(width / 2, height / 2, 60);
}
"""

res = infinite.render_video(
    sketch_js=sketch_code,
    out_mp4="sketch_loop.mp4",
    duration=4
)
```

---

## Attribution & License

MIT License. Created by **Naman Soni** (`n1m21n`).
When using this SDK in open-source tools or agent frameworks, please attribute:
`Infinite, by Naman Soni (https://infinitedevices.org)`
