Instructions to use Viggle/Meridian with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Diffusers
How to use Viggle/Meridian with Diffusers:
pip install -U diffusers transformers accelerate
import torch from diffusers import DiffusionPipeline # switch to "mps" for apple devices pipe = DiffusionPipeline.from_pretrained("Viggle/Meridian", dtype=torch.bfloat16, device_map="cuda") prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k" image = pipe(prompt).images[0] - Notebooks
- Google Colab
- Kaggle
|
Download docs/research.md from Viggle/Meridian: direct link, hf CLI and curl.
- Browser
- Download file 11.3 kB
-
https://huggingface.co/Viggle/Meridian/resolve/main/docs/research.md
- Command line
-
hf download hf://Viggle/Meridian/docs/research.md
-
curl -L -o research.md https://huggingface.co/Viggle/Meridian/resolve/main/docs/research.md
11.3 kB
| # Meridian: A new perspective on space and time | |
| **One event. Anywhere. Anytime.** | |
| By **Viggle AI** | |
| *14 September 2026.* | |
| <div class="film hero-film"> | |
| <video id="teaser-film" controls playsinline preload="none" width="100%" poster="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/longtake_showcase/teaser_v7/intro_059.jpg" src="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/teaser_meridian_showcase_v7.mp4" aria-label="Meridian teaser: a new perspective on space and time"> | |
| <a href="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/teaser_meridian_showcase_v7.mp4">Watch the Meridian teaser</a>. | |
| </video> | |
| <p class="film-caption">48-second teaser</p> | |
| </div> | |
| **Meridian is a geometry-guided video model for authoring new observations of existing events.** | |
| Given a video, choose a new camera path and the source moments to observe. Follow the action from | |
| another angle, linger on a gesture, or hold an instant while the camera keeps moving. | |
| ## Choose where. Choose when. | |
| - **Where:** design the camera's position, viewing direction, and lens over a shot. | |
| - **When:** let the action advance, hold a source moment, or change its pace by retiming the input. | |
| **Bullet time is one possibility, not the whole idea.** Camera motion and source time can be | |
| composed into different ways of watching the same event. A single image can also be the starting | |
| point for a moving view. | |
| The compound-camera example shows its source and requested path. The ballet examples use still images. | |
| <table class="video-grid"> | |
| <tr> | |
| <td width="50%" valign="top"> | |
| <video id="nba-film" controls playsinline preload="none" width="100%" poster="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/research_examples_v1/nba.jpg" src="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/research_examples_v1/nba.mp4" aria-label="NBA edit combining labeled source footage and generated views of held moments"> | |
| <a href="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/research_examples_v1/nba.mp4">Watch the example</a>. | |
| </video> | |
| <p><strong>A dunk.</strong> Source action, revisited from new angles. An edited sequence; dunk completion is source footage.</p> | |
| </td> | |
| <td width="50%" valign="top"> | |
| <video id="berry-film" controls playsinline preload="none" width="100%" poster="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/research_examples_v1/berry.jpg" src="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/research_examples_v1/berry.mp4" aria-label="Strawberries: source time advances, holds while the camera moves, then resumes"> | |
| <a href="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/research_examples_v1/berry.mp4">Watch the example</a>. | |
| </video> | |
| <p><strong>Play. Hold. Resume.</strong> Linger on the splash, then let it continue.</p> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td width="50%" valign="top"> | |
| <video id="moto-film" controls playsinline preload="none" width="100%" poster="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/research_examples_v2/motor_compound.jpg" src="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/teaser_meridian_compound_motor_dust_explained_v1.mp4" aria-label="Motocross: one uncut take with a compound camera path, selected source video, and requested camera diagrams"> | |
| <a href="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/teaser_meridian_compound_motor_dust_explained_v1.mp4">Watch the example</a>. | |
| </video> | |
| <p><strong>Compose a camera path.</strong> Widen, orbit, slide, approach, retreat—one uncut take.</p> | |
| </td> | |
| <td width="50%" valign="top"> | |
| <video id="ballet-film" controls playsinline preload="none" width="100%" poster="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/research_examples_v2/ballet_reverse45.jpg" src="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/meridian_ballet_l150_female_reverse45.mp4" aria-label="Female ballet dancer: generated camera movement from one still image"> | |
| <a href="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/meridian_ballet_l150_female_reverse45.mp4">Watch the example</a>. | |
| </video> | |
| <p><strong>One image. Another viewpoint.</strong> A camera move from a single ballet image.</p> | |
| </td> | |
| </tr> | |
| </table> | |
| <details class="more-examples"> | |
| <summary>More examples · robots, animation, dance, and sport</summary> | |
| <table class="video-grid"> | |
| <tr> | |
| <td width="50%" valign="top"> | |
| <video id="robot-film" controls playsinline preload="none" width="100%" poster="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/research_examples_v1/robot.jpg" src="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/research_examples_v1/robot.mp4" aria-label="Robot folding cloth from a higher generated viewpoint, with aligned input"> | |
| <a href="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/research_examples_v1/robot.mp4">Watch the example</a>. | |
| </video> | |
| <p><strong>Robot manipulation.</strong> The task continues from a higher viewpoint.</p> | |
| </td> | |
| <td width="50%" valign="top"> | |
| <video id="charge-film" controls playsinline preload="none" width="100%" poster="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/research_examples_v1/charge.jpg" src="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/research_examples_v1/charge.mp4" aria-label="Charge animation: play, hold, resume with a moving viewpoint"> | |
| <a href="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/research_examples_v1/charge.mp4">Watch the example</a>. | |
| </video> | |
| <p><strong>An animated event.</strong> Hold the action; move the camera.</p> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td width="50%" valign="top"> | |
| <video id="ballet_male-film" controls playsinline preload="none" width="100%" poster="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/research_examples_v1/ballet_male.jpg" src="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/research_examples_v1/ballet_male.mp4" aria-label="Male ballet dancer: a separate single-image input and generated viewpoint"> | |
| <a href="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/research_examples_v1/ballet_male.mp4">Watch the example</a>. | |
| </video> | |
| <p><strong>Another ballet photograph.</strong> One image, a moving view.</p> | |
| </td> | |
| <td width="50%" valign="top"> | |
| <video id="gymnast-film" controls playsinline preload="none" width="100%" poster="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/research_examples_v1/gymnast.jpg" src="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/research_examples_v1/gymnast.mp4" aria-label="Gymnastics: action continues while the generated camera rises"> | |
| <a href="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/research_examples_v1/gymnast.mp4">Watch the example</a>. | |
| </video> | |
| <p><strong>A rising view.</strong> The gesture unfolds.</p> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td width="50%" valign="top"> | |
| <video id="powder-film" controls playsinline preload="none" width="100%" poster="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/research_examples_v1/powder.jpg" src="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/research_examples_v1/powder.mp4" aria-label="Snow sports: action continues with a moving generated viewpoint"> | |
| <a href="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/research_examples_v1/powder.mp4">Watch the example</a>. | |
| </video> | |
| <p><strong>Through the powder.</strong> Move with the action.</p> | |
| </td> | |
| </tr> | |
| </table> | |
| </details> | |
| ## Method | |
|  | |
| *Matched source, warp, and output frames; the 3D points and cameras are schematic.* | |
| The method is simple: **use geometry to show a video model where to look.** | |
| **1. Reproject the source.** VGGT-Omega estimates depth and source-camera poses. We build colored | |
| 3D points, select the source moments, and project those points through an authored camera path | |
| into a warped video. | |
| **2. Generate the new view.** Meridian, built on MiniMax-H3, takes **the source video and warped | |
| video**, aligned to the same source moments, and generates the new shot. Geometry guides the view; | |
| the video model fills missing regions and refines appearance. | |
| **Preview before generation.** Once geometry is available, fast point-cloud rendering makes the | |
| chosen path visible. Check the framing, viewing direction, and uncovered regions—and adjust the | |
| camera before running the video model. This inexpensive preview is a useful consequence of making | |
| camera control explicit. | |
| ## Why this matters | |
| The shift is from generating another scene to **choosing another observation of the same event**. | |
| This is the world-model perspective behind Meridian: connect what we see to where and when we | |
| observe it, grounded in supplied footage rather than unrestricted simulation. | |
| Unseen regions are generated, not recovered. Geometry errors and large moves—including 360° | |
| orbits—can destabilize the view. Time edits revisit supplied frames, and separate takes need not | |
| form a consistent world. | |
| ## Try Meridian | |
| [Get started with Meridian](../README.md#quickstart). | |
| Meridian uses MiniMax-H3 with precomputed text embeddings, **without loading a text encoder**. | |
| We welcome community work on quantization and CPU offloading toward smaller GPUs, including the | |
| RTX 4090; those configurations are not yet supported or validated by the provided implementation. | |
| The release also includes a **very basic, vibe-coded Studio demo** to illustrate how | |
| to use the model—not a production editor. It supports multi-key camera paths and real-time 3D | |
| preview, not real-time video generation. | |
| <details class="studio-demo"> | |
| <summary>Watch the 38-second Studio walkthrough</summary> | |
| <div class="film"> | |
| <video id="studio-film" controls playsinline preload="none" width="100%" poster="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/studio_walkthrough/nba3_preview_live_02/studio_walkthrough_concise_poster.jpg" src="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/studio_walkthrough/nba3_preview_live_02/studio_walkthrough_concise.mp4" aria-label="Early Studio demo: actual authoring and geometric preview, not final generation"> | |
| <a href="https://huggingface.co/Viggle/Meridian/resolve/main/videos-all/studio_walkthrough/nba3_preview_live_02/studio_walkthrough_concise.mp4">Watch the Studio walkthrough</a>. | |
| </video> | |
| <p class="film-caption">Authoring and geometric preview only, with some operations and waits omitted—not a final generated take.</p> | |
| </div> | |
| </details> | |
| --- | |
| Powered by MiniMax H3. See the [licenses and intended use](../README.md#license). | |