Skip to content

NXStorm/Marble-x-Nuke

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Marble   ✕   Nuke

Marble x Nuke

Generate AI-powered 3D worlds and view them as Gaussian Splats — directly inside Nuke 17+.

Nuke 17+ Python License: MIT Platform World Labs API

Marble x Nuke hero

Demo

Marble x Nuke demo

HD demo video available in the latest release.


What it does

Marble x Nuke is a native Nuke 17+ integration of the World Labs Marble API. It lets compositors and VFX artists generate AI 3D worlds from text prompts or images, then immediately load the resulting Gaussian Splats as .PLY point clouds into Nuke's 3D viewport via GeoImport — no leaving the compositing app, no plugins to install, no external dependencies.

It bridges generative 3D and the most widely used compositing software on the planet — and it works on Nuke Non-Commercial too.

Why it matters

Building set extensions, previs environments, or 3D backplates from scratch is slow. With Marble x Nuke, a one-line prompt becomes a navigable Gaussian Splat world inside Nuke's viewer in under a minute. The same loop works from a still image, a clean plate, or a set of reference photos — the result is a 3D world you can project, frame, and composite against.

Nodes

Node What it does
Marble T2WText-to-World — describe a scene, get a 3D world.
Marble I2WImage-to-World — single image, multi-image, or full reconstruction from up to 4 views.
Marble ListBrowse, manage, and delete your generated worlds.
Marble SplatsDownload and view Gaussian Splats from any world as PLY.

Features

  • 🌍 One-click world generation from text prompts or images
  • Automatic Gaussian Splat download in PLY format right after generation
  • 🎬 Auto GeoImport node creation — select the node, press V, then Tab to enter 3D
  • 🔧 Built-in SPZ → PLY converter — no external Python packages required
  • 🖼️ Multi-image & Reconstruct modes — feed up to 4 views with azimuth control
  • 🎚️ Configurable splat resolution — full, 500k, or 100k points
  • 🆓 Works with Nuke Non-Commercial
  • 🔐 Local API key storage — your key never leaves your machine

Installation

1. Copy the plugin

Copy the MarbleXnuke/ folder into your .nuke directory:

OS Path
Windows C:\Users\<YourName>\.nuke\MarbleXnuke\
macOS /Users/<YourName>/.nuke/MarbleXnuke/
Linux /home/<YourName>/.nuke/MarbleXnuke/

2. Register the plugin

Open (or create) init.py inside your .nuke directory and add:

import nuke, os
nuke.pluginAddPath(os.path.join(os.path.expanduser("~/.nuke"), "MarbleXnuke"))

3. Set your API key

  1. Get a key at platform.worldlabs.ai/apiKeys
  2. In Nuke, create any Marble node from the MarbleXnuke toolbar menu
  3. Paste your key and click Save API Key

That's it — you're ready to generate.


Usage

Text-to-World

  1. Create a Marble T2W node from the MarbleXnuke menu
  2. Type a prompt describing the world you want ("a foggy cyberpunk alley at dawn")
  3. Click Generate World
  4. The Gaussian Splat loads automatically into a GeoImport node
  5. Select the GeoImport, press V to view, then Tab to enter 3D

Image-to-World

  1. Connect an image to the Marble I2W node input
  2. Optionally add a guidance prompt
  3. Click Generate World
  4. View the same way — select GeoImport, V, Tab

Multi-Image / Reconstruct

  1. Set Image Mode to Multi-Image or Reconstruct
  2. Connect up to 4 images to the node inputs
  3. Set azimuth angles per view
  4. Generate and explore

File structure

Marble-x-Nuke/
├── MarbleXnuke/
│   ├── init.py              # Plugin path registration
│   ├── menu.py              # Nuke menu entries
│   └── Python/
│       ├── marble_common.py # API client, SPZ decoder, shared utilities
│       ├── marble_t2w.py    # Text-to-World node
│       ├── marble_i2w.py    # Image-to-World node
│       ├── marble_list.py   # World browser node
│       ├── marble_splat.py  # Splat viewer node
│       └── MarbleXnuke/
│           ├── Logo.png     # Menu icons (multiple sizes)
│           └── __init__.py
├── docs/                    # Banner, logos, demo GIF
├── LICENSE                  # MIT
└── README.md

Requirements

  • Nuke 17+ — Commercial, Indie, or Non-Commercial
  • World Labs API keyget one here
  • No external Python packages — falls back to urllib if requests isn't available

Troubleshooting

Problem Solution
Buttons don't respond Delete the node and recreate it from the menu
No splat after generation Click View Splats in 3D to retry the download
Write permission error Change the Output Directory to a writable path
API key not working Verify it at platform.worldlabs.ai
Splat too heavy Switch resolution to 500k or 100k in the node

Roadmap

  • Batch generation from a CSV of prompts
  • Direct projection setup on GeoImport (camera-aligned)
  • Snapshot-to-USD export
  • OCIO color management for image inputs

Have an idea? Open an issue or ping me on LinkedIn.


Contributing

PRs and issues welcome. If you ship a plate built with Marble x Nuke, I'd love to see it — tag me on LinkedIn.


License

Released under the MIT License — free to use, modify, and ship in commercial work.


Credits

  • World Labs — the Marble API that makes this possible
  • Foundry — for Nuke, the compositing standard
  • Built and maintained by SINAI R&D

About the author

SINAI R&D explores the intersection of AI, 3D, and audiovisual production — building tools that bring generative pipelines into the hands of working VFX artists.

LinkedIn

If this project saved you time, a ⭐ on the repo and a like on the launch post go a long way.


Marble x Nuke — open source VFX tooling, made with care.

About

World Labs Marble API integration for Nuke 17+ — Generate AI 3D worlds and view Gaussian Splats directly in Nuke's 3D viewport.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages