Tutorials

Every workflow, step by step.

Short numbered guides for everything you'll do in Viewrium: your first product, each way to upload, the dashboard, the SDKs, the embed, the Shopify app, and your analytics. Read top to bottom, or jump straight to the one you need.

The first run, start to finish: create, generate, and the finished product as a shopper sees it.

01

Getting started

Everything you need to go from your first upload to a live AR experience.

  1. Create your account

    Head to the sign-in page and create an account. No card. The dashboard opens on an empty catalog.
  2. Add your first product

    Open Upload and give it photos, a video, or the product page URL. Confirm one measurement so AR shows the product at its exact size.
  3. Review the model

    Rerun it with more photos or contact us.
  4. Publish

    Copy the embed tag into your product template, or print the QR code. The viewer is live. The embed reference covers the tag's attributes.
02

App guides

Everything in this section happens in the app, no code involved: how to feed each upload mode well, how to run your catalog from the dashboard, and how to request specialist refinement.

Upload modes

Start from a product URL

If the product already has a page with photos on it, the URL is the fastest input.

  1. Copy the address of the product page. The photos already on it are the source material; you need nothing else.
  2. Open Upload, switch to URL mode, paste the address, and start. We fetch the page, pick the clearest product images, and rebuild the product in 3D.

Start from photos

Photos give you the most control over what the reconstruction sees.

  1. Shoot the product from all sides: front, back, both sides, and one from above. Minimum five photos are recommended.
  2. Open Upload, drop the photos in, confirm the measurements, and start the generation.

Start from a video

A short walk-around clip captures every angle in one take.

  1. Circle the product slowly with your phone for 20 to 60 seconds, keeping it centered and fully in frame.
  2. Upload the clip. We pull the sharpest frames automatically and reconstruct from those.
GLBGLTFFBXOBJ
textures included -> compressed GLB on our CDN

Start from an existing 3D file

Already have a model? We make it web-ready instead of regenerating it.

  1. Export a GLB, GLTF, FBX, or OBJ from your design tool, with textures included.
  2. Upload it in file mode. We convert it to a compressed GLB, host it on our CDN, and it behaves like any other model in your dashboard.

Run your catalog

Invite your team

Workspaces are shared; your catalog does not live in one person's account.

  1. Open your workspace settings and invite teammates by email.
  2. Pick a role: members manage their own models, admins manage everyone's.
  3. Invitees land in the same dashboard with the catalog already in place.
Acme Interiors

Team

MemberRoleJoined

Alicia Renner

alicia@acme-interiors.com
Owner

Mar 3, 2026

Marcus Webb

marcus@acme-interiors.com
Admin

May 18, 2026

Priya Shah

priya@acme-interiors.com
Member

Jul 1, 2026

Enable or disable products

Every product has a Published switch, so publishing is reversible.

  1. Open a product in your dashboard, go to its Publish tab, and flip Published.
  2. Off pulls it from the viewer, the share link, and every embed at once. Nothing is deleted.
  3. Flip it back on and the same URLs serve it again.

Generate QR signage

Each product gets a QR code that opens its AR view directly.

  1. Open the model and choose the QR option; the code is generated for you.
  2. Download it and place it on shelf cards, hang tags, packaging, or catalog pages.
  3. Customers scan it with their camera and the product opens in their space. No app install.

Specialist refinement

Request specialist refinement

Most products publish straight from AI. For a hero product where every detail counts, our 3D specialists perfect the model on request.

  1. Open the model in your dashboard and request refinement. Review the estimated price for its complexity, then submit with any notes for the team.
  2. You get a fixed quote before any work starts. Approve it and our 3D specialists perfect the geometry, materials, and textures.
  3. The refined model replaces the original in place. Your existing embeds, QR codes, and links keep working, with nothing to re-paste.
03

SDK guides

The SDKs drive the same pipeline as the upload page, so everything you create in code shows up in the dashboard for review. These guides cover the first call; the references cover every parameter.

Your first model in Python

Two calls: one asks what it will produce and cost, one commits it.

  1. Install the package, then mint a secret key on the dashboard's API keys page.
  2. Ask for a quote from a product page URL. Nothing is written yet: you get the plan, the price, and a resume token.
  3. Post the token back to commit. That call starts the run; watch it land in your dashboard, or poll retrieve until display_status leaves generating.

Reference depth: the Python SDK docs and the API reference.

$ pip install viewrium
create_model.py
from viewrium import ProductCreateRequest, ProductDraft, Viewrium

client = Viewrium("sk_live_...")

parked = client.products.create(
    ProductCreateRequest(
        source_url="https://store.example.com/oak-chair",
        draft=ProductDraft(custom_id="sku-oak-chair"),
    )
)
print(parked.cost.total_cents)  # nothing is written yet

product = client.products.create(
    ProductCreateRequest(resume_token=parked.resume_token)
)
print(product.id, product.display_status)  # -> "<uuid>", "generating"

Your first model in JavaScript

Same shape as Python, TypeScript-first, and it runs on Node 18+, Deno, Bun, and edge runtimes.

  1. Install the SDK and pass it a secret key from the dashboard's API keys page.
  2. Ask for a quote from a product page URL. A fresh request parks, so nothing exists until you commit it.
  3. Post the resume token back, then review the product in the dashboard like any manual upload.

Reference depth: the JavaScript SDK docs and the API reference.

$ npm install @viewrium/sdk
create-model.ts
import { Viewrium } from "@viewrium/sdk";

const client = new Viewrium({ apiKey: "sk_live_..." });

const parked = await client.products.create({
  source_url: "https://store.example.com/oak-chair",
  draft: { custom_id: "sku-oak-chair" },
});

if (parked.status !== "parked") throw new Error("already committed");

const product = await client.products.create({
  resume_token: parked.resume_token,
});
console.log(product.id); // generation has started

Generate your whole catalog

One loop turns a product feed into an AR catalog. A webhook tells you when each model is ready, so nothing polls.

  1. Subscribe an endpoint to product.completed on the dashboard's webhooks page.
  2. Loop over your feed: quote each product, then commit the token it answers with. Pass your SKU as custom_id so each webhook maps back to your system.
  3. Handle the webhook: the payload carries your custom_id and the finished model's URL. Review the batch in your dashboard afterward.

Reference depth: webhooks and the API reference.

generate_catalog.py
for item in catalog:
    parked = client.products.create(
        ProductCreateRequest(
            source_url=item["url"],
            draft=ProductDraft(custom_id=item["sku"]),
            order=ProductOrder(images=True, model=True),
        )
    )
    client.products.create(
        ProductCreateRequest(resume_token=parked.resume_token)
    )

# each finished product arrives as a
# product.completed webhook, custom_id attached
04

Embed guides

Three ways to put a finished model in front of a customer: on your site, on paper, and in a message.

Add the viewer to any site

The viewer is a web component: one script tag per page, one element per product.

  1. Copy the embed snippet from any model page in your dashboard.
  2. Paste the script tag once, then drop the element wherever the viewer should render, with your product id on it.
  3. Publish. The viewer renders 3D with an AR button on phones, and nothing at all for products without a model.

Attributes, events, and sizing live in the embed reference.

product-template.html
<!-- once per page -->
<script type="module"
  src="https://unpkg.com/@google/model-viewer/dist/model-viewer.min.js"></script>
<script src="https://cdn.viewrium.com/v1/embed.js" data-pk-key="pk_live_..."></script>

<!-- one per product -->
<viewrium-model model-id="0b1e...-product-uuid"
  style="width:100%;height:480px"></viewrium-model>

QR codes for print

The same code from the dashboard works at print scale.

  1. Download the QR from the model page; it's generated for you.
  2. Place it where the decision happens: shelf edge, hang tag, catalog page.
  3. Scan a test print before the production run. Size and glare decide scannability.
05

Shopify guides

Viewrium installs as a Shopify app, so 3D and AR attach to your product pages as native Shopify media. Install, generate from your catalog, and publish without touching your theme.

Install the Shopify app

Viewrium installs from the Shopify App Store and connects to the store you already run.

  1. Install Viewrium from the Shopify App Store and approve the connection to your shop.
  2. The app opens on your products page inside Shopify admin. Your theme, templates, and storefront stay exactly as they were.

Generate from your catalog

The app reads your product list, so you pick products instead of re-uploading photos.

  1. Open the Viewrium app and select the products you want, or select the whole catalog at once.
  2. Start generation. The AI builds a model from the photos already on each listing, and every model stays linked to its product.
  3. For a hero product that needs extra realism, request specialist refinement on the model without leaving Shopify.

Publish to product pages

Approved models attach as native Shopify 3D media, next to your product photos.

  1. Review each model and approve it. Nothing publishes until you do.
  2. The model takes a slot in the product gallery. Customers rotate it there and open AR on their phone, and Shopify handles the iPhone format for you.
  3. No theme edits and no extra code: the model appears on the product page you already publish.
06

Analytics

Once a model is live, the usage page tracks what customers do with it: how often the viewer loads and how often they open AR, per product.

Open your analytics

The Analytics page shows what happens to your models after they go live.

  1. Open Analytics in the dashboard for views and AR opens across your whole catalog.
  2. Every viewer load and every AR launch is counted per product, so you see which models customers actually open.
Acme Interiors

Analytics

3D views, AR sessions and generations in Acme Interiors.

3D views3,644
AR views838
Avg. AR duration48s
Generations316
Failed generations5
Generations started321

Activity over time

3D viewsAR viewsGenerationsFailed
22 Jun7 JulToday

Read views and AR opens

Two numbers per product: how often the viewer loaded, and how often a customer opened AR.

  1. Compare views against AR opens to see which products pull customers into AR.
  2. Switch the date range between the last 7, 30 or 90 days, the last 12 months, or a custom range, to line up products against each other, or one period against the last.

Export with the usage API

The same numbers are available over the API when you report somewhere else.

  1. Pull views and AR opens over the usage API and load them into your own dashboard or spreadsheet.
  2. Narrow the numbers to one product, one kind of event, or any date range you choose.
{
  "start": "2026-06-21T00:00:00Z",
  "end": "2026-07-21T00:00:00Z",
  "granularity": "day",
  "buckets": [
    { "period_start": "2026-07-20T00:00:00Z", "event_type": "view", "count": 968, "cost_cents": null },
    { "period_start": "2026-07-20T00:00:00Z", "event_type": "ar_enter", "count": 149, "cost_cents": null },
    { "period_start": "2026-07-20T00:00:00Z", "event_type": "generation.completed", "count": 73, "cost_cents": 2920 }
  ],
  "totals": {
    "view": 4025,
    "ar_enter": 595,
    "generation.completed": 291
  }
}

Stuck anywhere? The contact page reaches a human.