dx.gl

Portal Guide

HTML
# DX.GL Portal Guide

How to use the DX.GL portal to create product videos from 3D models.

---

## Getting Started

DX.GL turns 3D models into production-ready turntable videos. The workflow is:

1. Upload a GLB, glTF, or ZIP file
2. Configure render settings (aspect ratio, background, duration, surface effects)
3. Receive an MP4 video, a web-optimized variant, a thumbnail video, and a WebP poster image

New accounts include **10 free credits on signup** — enough for 10 full-quality 540p turntable videos with no watermarks and no restrictions. Every upload also generates a free **system preview** — a 540p MP4 you can share with anyone via a link, and a way to verify your model loaded correctly before spending a credit.

The portal has up to three top-level tabs (which tabs are visible depends on your active mode):

- **Upload** — Quick capture (drop → preview → render) and batch import (file upload + URL import)
- **Models** — Browse your model library, select models for rendering, configure render settings, and monitor the render queue
- **Videos** — Browse, download, share, and export finished videos
- **Datasets** — Browse, download, and export vision training datasets *(Data and Full modes only)*

---

## Portal Modes

Portal modes focus the interface around a specific workflow, hiding options that aren't relevant to keep things simple. Click the mode label next to **DX.GL** in the top-left header to open the mode picker and switch modes. Your selection is saved in the browser.

New accounts default to **Studio** mode, which exposes all creative features. Switch to a simpler mode (Social, Pro) if you want a more focused interface, or to Data if you're generating vision training datasets.

| Mode | Best for | Tabs | Quality | Key features |
|---|---|---|---|---|
| **Social** | Quick turntable + share link | Upload, Models, Videos | Standard (540p) | Galleries |
| **Pro** | High-volume e-commerce exports | Upload, Models, Videos | HD (1080p) | Batch, all camera paths, rotation, overlays, import, export URLs, API keys |
| **Studio** *(default)* | Full creative control | Upload, Models, Videos | Standard, HD, 4K, ProRes 4444 | Everything in Pro + 4K/ProRes quality, Workshop, vignette, live preview, galleries, animation clips |
| **Data** | Vision training datasets | Upload, Models, Datasets | Dataset tiers | Batch, hemisphere/sphere coverage, import, API keys |

Features mentioned throughout this guide that are only available in certain modes are noted inline.

---

## Uploading Models

The Upload top-level tab has two sub-tabs: **Capture** and **Import**.

### Capture

Drop a single 3D model to see an instant 3D preview. Choose aspect ratio and background color, then click **Render video** to render a shareable Standard (540p) turntable video. Click the canvas to pause/play the spinning preview. This is the fastest path from file to video.

### File Upload (Import)

Click **Import** in the Upload tab, then drag-and-drop or click to select GLB, glTF, or ZIP files. Multi-file uploads are supported — files queue automatically and upload sequentially. This adds models to your library for rendering with full settings control.

#### Tags on Upload

Below the drop zone, a tag input lets you apply tags to all files in the current upload batch. Type a tag and press Enter or click **+** to add it. Tags auto-complete from your existing tags. All files uploaded while those tags are set will receive them automatically. Click **Clear** to remove all tags.

- Maximum file size: **100 MB**
- Supported formats: `.glb`, `.gltf`, `.zip` (OBJ+MTL+textures)
- Files are SHA-256 hashed client-side for deduplication — identical files are detected before upload
- Files over 90 MB use chunked upload (50 MB chunks) for reliability
- Free accounts can upload up to 25 models. Purchase any credit pack to remove this limit.

### 3D Scan Upload

To upload a 3D scan (e.g. from Artec Studio, RealityCapture, or Metashape), export as OBJ with textures, zip the folder, and upload the ZIP. Include exactly one .obj file per ZIP along with its .mtl and texture files. The server converts to GLB automatically with roughness set to 1.0 for a natural matte finish. The converted model enters the standard pipeline — you'll see a system preview within seconds. You can also download the converted GLB from the model detail view, giving you a clean GLB with embedded textures and correct PBR materials — no manual conversion needed.

### Import from URL

*Available in Pro, Studio, Data, and Full modes.*

In the Import sub-tab, expand the **Import from URL** section below the file drop zone. Paste one or more URLs to GLB files hosted elsewhere, one per line. The server downloads each file directly (max 100 MB, 2-minute timeout). SHA-256 deduplication applies. URL import supports GLB/glTF only. For OBJ scans, upload a ZIP file via the drop zone above.

### After Upload

Every uploaded model automatically receives a free system preview render (no credits deducted). This generates a thumbnail poster within seconds and serves as a model integrity check — if the preview fails, the model likely has issues with geometry, textures, or glTF structure.

### Model Detail View

Click any model in the Models tab to open its detail view. The detail view shows the model poster (with hover video preview) and has five sub-tabs:

- **Edit** — Edit the model's title, SKU, and tags. Tags have autocomplete suggestions drawn from all your existing tags. Click **Save** to persist changes.
- **Videos** — All video renders for this model (grid or list view). Each render card has an archive button. Click a render to open the video modal. Dataset renders are excluded — they appear in the Datasets sub-tab.
- **Datasets** — All dataset renders for this model. Each row shows status, date, and a download link with file size. Click a completed row to view the overview contact sheet.
- **Source** — Embedded glTF metadata (read-only). Shows creator, license, copyright, source URL, original title, and generator when present in the GLB file. Source URLs and creator links are clickable. Sketchfab models include rich metadata here.
- **Manage** — Archive or delete the model. Download the GLB (with file size shown). For scan-origin models (uploaded as OBJ ZIP), a **Fix Up Axis** button appears to correct Z/Y axis inversion.

Actions in the detail header: **Download** (original GLB file), **Archive**, and **Render** (pre-selects this model and navigates to the Render sub-tab).

### Archiving

Models and videos can be archived rather than permanently deleted. Archived items are hidden from default views but can be restored. Click the **archive toggle** button in the Models toolbar to switch to archived-only view, where you can inspect and unarchive models.

### Model Selection

Model cards have always-visible checkboxes. Click the checkbox to select a model for rendering — clicking the card body still opens the detail view. When models are selected, a contextual strip appears between the toolbar and the model grid showing "N selected" with **Tag**, **Archive**, and **Clear** actions.

Selected models feed directly into the Render sub-tab. Use `Shift+Click` for range selection. Press `S` to select/deselect all, or `Escape` to clear the selection.

---

## Render Settings

The Models tab has three sub-tabs: **Library** (model browser with selection), **Render** (configure render options with inline review of selected models), and **Queue** (active render monitoring). Select models via checkboxes in Library, then switch to the Render sub-tab to configure settings:

Settings are organized into collapsible groups: **Output**, **Motion**, **Appearance** (all expanded by default), and **Advanced** (collapsed). When Output is set to Dataset, Motion/Appearance/Advanced are hidden entirely since they don't apply to dataset renders.

| Setting | Group | Options | Default |
|---|---|---|---|
| Type | Output | Video, Dataset | Video |
| Quality | Output | Standard (540p, 1 credit), HD (1080p, 4 credits), 4K (16 credits), ProRes 4444 (64 credits) | Standard |
| Aspect | Output | 16:9, 1:1, 9:16 | 16:9 |
| Camera path | Motion | Turntable, Hero Spin, Showcase, Zoom Orbit, Reveal | Turntable |
| Animation | Motion | Clip selector (auto-shown only if the model has animation clips) | — |
| Duration | Motion | 6, 9, 15, 30 seconds, or Custom (3–600, decimal OK) | 6s |
| Easing | Motion | On / Off | On |
| Background | Appearance | Preset (White, Cream, Navy, Black), Custom hex, or Image | White |
| Surface | Appearance | Shadows, Reflection, or None | Shadows |
| Vignette | Appearance | On / Off — subtle edge darkening for depth | On |
| Rotate | Advanced | Yaw (Y): −180° to 180°, Pitch (X): −90° to 90°, Roll (Z): −180° to 180° | 0° / 0° / 0° |
| Camera | Advanced | Angle: −180° to 180° (orbit start), Zoom: 0.5× to 2.0× (distance) | 0° / 1.0× |

### Quality

The Quality selector in the Output group determines resolution, codec, and credit cost:

- **Standard** — 540p H.264 MP4 (1 credit). The default. Antialiased output that looks clean in messaging apps and quick shares. Available in all modes.
- **HD** — 1080p H.264 MP4 (4 credits). Best for web and social media. *(Pro, Studio, Full modes.)*
- **4K** — 3840×2160 H.264 MP4 (16 credits). For large screens and high-DPI displays. *(Studio and Full modes only.)*
- **ProRes 4444** — 3840×2160 ProRes 4444 with alpha channel (64 credits). For professional video editing and compositing. The `.mov` file has a transparent background; the `bgColor` is applied only to the web/thumbnail/poster variants. *(Studio and Full modes only.)*

For Dataset output, a separate tier selector replaces the video quality buttons: 100×800 (4 credits), 196×1024 (16 credits), 400×2048 (64 credits). See [Datasets](#datasets--vision-training) below.

All video quality tiers render with GPU-accelerated 2× supersampling (SSAA) for smooth, anti-aliased edges.

### Motion

The **Motion** group contains everything related to how the camera moves and whether the model's own animation plays.

- **Camera path** — The spatial trajectory the camera follows. Turntable is shown by default as the active option; the other four paths (Hero Spin, Showcase, Zoom Orbit, Reveal) are hidden behind a **More motions ▾** link. Expanding reveals all five; a **Less ▴** collapse link appears when you're on Turntable so you can tidy the UI back. If you load a render with an advanced path selected, the disclosure auto-expands.
- **Animation** — If the selected model contains animation clips, an Animation row appears automatically inside the Motion group (no mode gating — purely driven by whether the GLB has clips). Choose a clip from the dropdown; Speed and Cycles rows reveal below it. The first clip is auto-selected when a model loads.
- **Duration** — 6/9/15/30s presets or Custom. When an animation clip is active, duration is auto-calculated for seamless looping; manual edits override.
- **Easing** — Smooth acceleration/deceleration of camera motion. Also governs animation playback timing so the two stay in sync.

### Custom Values

Background and Length both support custom values. Click **Custom** to enter a hex color or a duration (3–30 seconds, or 3–600 for admin accounts). Decimal values are supported (e.g. 4.7s) for precise animation loop alignment. Invalid values are highlighted and block submission.

### Surface

Shadows and Reflection are mutually exclusive — selecting one disables the other. Choose **None** for a clean floating look with no ground effects.

### Advanced (Rotate & Camera framing)

*Available in Pro, Studio, Data, and Full modes.*

The **Advanced** group (collapsed by default) controls model orientation and camera framing:

**Rotate** (Yaw / Pitch / Roll) — defines the model's pose:

- **Yaw** (−180° to 180°) — swivels the model left/right (Y axis). Useful for showing a product from a slightly angled perspective.
- **Pitch** (−90° to 90°) — leans the model forward/backward (X axis). Useful for angling shoes, bottles, or packaging. Pitch bypasses shadow caching, so the first render with a new pitch value takes slightly longer.
- **Roll** (−180° to 180°) — tilts the model sideways (Z axis). Useful for dynamic, non-upright compositions.

Model rotations are applied in order: Yaw → Pitch → Roll using quaternion composition. The model is automatically re-scaled to fit the viewport after rotations are applied.

**Camera** row combines Angle and Zoom on a single line:

- **Angle** (−180° to 180°) — sets the turntable camera starting position. This determines which side the camera faces when the video begins, without changing the model's pose. Think of it as turning the turntable under the posed model.
- **Zoom** (0.5× to 2.0×) — adjusts camera distance. Values above 1.0 zoom in (close-up), below 1.0 zoom out (wide). Default is 1.0 (auto-fit). Useful for detail shots like shoelaces or watch faces.

A **Reset** link appears when any Rotate, Angle, or Zoom value differs from its default, returning all values to 0° / 1.0×.

### Animation details

The Animation row inside the Motion group is shown automatically when the selected model contains clips (walk cycles, product reveals, mechanical motion). It is not gated by mode — any model with embedded animations exposes these controls regardless of which portal mode you're in.

- **Clip selection** — Choose which animation clip to play. The first clip is auto-selected by default.
- **Speed** — Adjust playback speed via slider or numeric input (0.25× to 4×). Useful for slowing down fast animations or speeding up slow reveals.
- **Cycles** — Set how many complete loops of the animation play in the video. Duration is derived automatically: `cycles × clip duration / speed`. Decimal cycles (e.g. 1.5) are supported for partial loops.
- **Auto-duration** — When you select an animation, the video length is automatically calculated for seamless looping. Manually editing the duration overrides this.
- **Seamless loop indicator** — Shows when the cycle count produces an exact loop (no visible cut point).
- **Easing sync** — Animation playback follows the camera easing curve, so acceleration/deceleration in the camera path is mirrored in the animation timing.

### Preview

*Available in Studio and Full modes.*

Toggle **Preview** on in the render settings to open a floating 3D preview panel. The panel shows a real-time animation with your model's original PBR materials, ACES filmic tone mapping (matching the renderer), and a ground grid. It updates live as you adjust settings.

- **Drag** the panel anywhere on screen by its title bar
- **Expand** to fullscreen via the expand button in the panel header
- Click the canvas to **play/pause** the animation
- **Frame counter** — Shows current frame, total frames, and elapsed/total time
- **Animation playback** — If an animation clip is selected, it plays in the preview with correct speed and easing sync
- The panel **animates smoothly** when you change aspect ratio
- Closes automatically when you leave the Render sub-tab
- GPU-accelerated — requires WebGL 2 support in your browser

The preview uses the same tone mapping and materials as the final render. Shadows and reflections are not shown in preview for performance.

### Duplicate Detection

If you submit a render with settings identical to an existing render for the same model, you'll see a warning. You can force the render if needed.

---

## Background Images

*Image backgrounds are available in Pro, Studio, and Full modes.*

Instead of a solid background color, you can use an image as the scene background — perfect for branded gradients, campaign visuals, or any custom backdrop.

### Color vs Image Mode

In the render settings Background section, toggle between **Color** (solid hex, the default) and **Image**. The Image picker shows system backgrounds (gradients published by DX.GL) first, followed by your own uploads.

### Uploading Custom Backgrounds

Click **Upload** in the Image picker to add your own background image. Supported formats: PNG, JPEG, WebP (max 10 MB). You can store up to 20 custom backgrounds.

### How Cropping Works

Your background image is scaled to fully cover the output dimensions, then cropped based on the **alignment** setting. The default is top-left, meaning logos or branding placed there stay anchored regardless of aspect ratio. Choose from 9 anchor points (top-left, top-center, top-right, center-left, center, center-right, bottom-left, bottom-center, bottom-right) to control which part of the image is preserved when cropping for different aspect ratios.

**Tip:** Use a square image (e.g. 1920×1920) for best results across all aspect ratios.

### Batch Compatibility

Background images work with batch rendering. You can mix different backgrounds across batch variants — the GPU render pass is shared, and each variant gets its own background composited during video encoding.

### API Usage

Upload backgrounds via the [Overlays API](https://dx.gl/portal/docs#overlays), then pass the overlay ID as `bgImageId` in render settings.

---

## Batch Rendering

*Available in Pro, Studio, Data, and Full modes.*

Batch rendering lets you create multiple videos efficiently. There are two approaches:

### Batch Mode

Toggle **Batch** on in the Render sub-tab. This changes the workflow:

1. Configure a set of render settings (aspect, background, length, surface, easing)
2. Click **Add to Batch** to save that variant to the batch list
3. Repeat with different settings to build up multiple variants
4. Click **Run Batch** to submit all variants at once

Total videos = variants × selected models. Each variant costs credits based on its quality tier (1 for Standard, 4 for HD, 16 for 4K, 64 for ProRes 4444).

### Multi-Model Selection

Select multiple models in the Models tab using the always-visible checkboxes (click to toggle, `Shift+Click` for range, `S` for all). Selected models automatically carry over to the Render sub-tab.

In single mode (Batch off), clicking **Render** applies the current settings to all selected models. In Batch mode, the batch list applies to all selected models.

### How It Works

- Credits are deducted atomically — if you don't have enough for the full batch, nothing is deducted
- The render worker automatically groups renders for the same model — GPU frames are rendered once and encoded into multiple variants in parallel
- Each render in the batch appears independently in the queue and Videos tab

---

## Datasets & Vision Training

Select **Dataset** in the Output selector to generate a NeRF/3DGS-ready training dataset instead of a video. Three tiers: 100×800 (4 credits), 196×1024 (16 credits), 400×2048 (64 credits). Choose hemisphere or full sphere coverage.

The output ZIP contains:

- `images/` — RGB PNG frames (composited on white background)
- `depth/` — 8-bit grayscale depth PNGs (closer = darker, farther = lighter). Tight near/far planes maximize precision across the model’s actual depth span.
- `depth_16bit/` — 16-bit grayscale depth PNGs (65,536 levels of precision for surface reconstruction)
- `normals/` — world-space normal map PNGs
- `masks/` — foreground/background alpha mask PNGs
- `transforms.json` — Camera intrinsics + per-frame 4×4 transform matrices (nerfstudio / instant-ngp format). Includes `depth_near` and `depth_far` for decoding: `depth = pixel_value/255 * (depth_far - depth_near) + depth_near`
- `overview.webp` — 4-quadrant contact sheet showing all views across RGB, depth, normals, masks

### Datasets Tab

The **Datasets** tab shows all completed dataset renders. It has two sub-tabs:

- **Download** — List view with poster thumbnail, model name, date, tags, and download link with ZIP file size. Click a row to view the full overview contact sheet in a lightbox. Includes a search bar (matches name, title, SKU) and a tag filter toggle (same pill chip style as the Videos tab).
- **JSON** — Exportable JSON array with download URLs for programmatic use. Each entry includes name, dataset URL, view count, resolution, format, and tags. Copy button for one-click clipboard.

---

## Videos & Downloads

The **Videos** tab shows all completed video renders (excluding system previews and dataset renders). It has three sub-tabs:

- **Browse** — Grid or list view of your videos (press `G` to toggle). Grid shows poster thumbnails with hover video preview; List shows compact rows with key metadata. Always-visible checkboxes on each card for selection.
- **Galleries** — View and manage shared galleries. Create new galleries or delete existing ones. See [Sharing & Galleries](#sharing--galleries). *(Social, Studio, and Full modes only.)*
- **Export** — Public asset URLs for each video, designed for embedding in Shopify, Amazon, and other platforms. No authentication required. Includes a collapsible JSON section with copy/save buttons. *(Pro, Studio, and Full modes only.)*

### Video Selection

Video cards have always-visible checkboxes. Click the checkbox to select a video — clicking the card body opens the video modal. When videos are selected, a contextual strip appears above the grid with **Share**, **Archive**, and **Clear** actions. Use `Shift+Click` for range selection, `S` to select/deselect all, or `Escape` to clear. In list view, each row has a download icon with file size for downloading the asset bundle directly.

Click the **archived toggle** (archive icon) in the toolbar to switch to archived-only view, where you can inspect and unarchive videos.

### Sorting & Grouping

Click the sort toggle to switch between newest-first and oldest-first (saved in localStorage). Videos can be grouped by Model, Date, or None using the icon buttons in the toolbar. Groups are collapsible — use Expand All / Collapse All buttons (visible when grouping is active).

### Video Modal

Click any video to open the modal. The modal is a flippable card with a front and back side.

**Front Side:**

- Video playback with play/pause (click video or button)
- Fullscreen/expand toggle
- Flip button — rotates the card to reveal the back side
- **Download** button — downloads all assets as a zip bundle (shows estimated file size). System preview videos download the web MP4 directly instead of the full bundle.
- Controls auto-fade while playing; reappear on hover or mouse movement
- Legacy preview renders (pre-2026 accounts) show an **Unlock** button (costs credits to remove the watermark); new accounts no longer receive watermarked renders

**Back Side:**

- **QR Code** — scannable share link; tap QR to copy the URL
- **Share / Save** — uses Web Share API on mobile, or downloads the video on desktop
- **Downloads** — Full MP4, Web MP4 (if available), and Poster
- **Note** — a free-text note field attached to the render (persisted)
- **Edit mode** — toggle the edit switch to enter edit mode, where you can modify the note, toggle reshare permissions, then Save

Click the back side background or press `Esc` to flip back to the front. Pressing `Esc` follows a layered exit order: exit edit mode → flip to front → collapse fullscreen → close modal.

### Output Files

Each completed render produces:

| File | Standard | HD | 4K | ProRes 4444 |
|---|---|---|---|---|
| Full Video | H.264 MP4 540p 60fps | H.264 MP4 1080p 60fps | H.264 MP4 4K 60fps | ProRes 4444 .mov 4K 60fps (with alpha) |
| Web Video | H.264 MP4, lower bitrate — optimized for web embedding/streaming | | |
| Thumbnail | H.264 MP4, quarter resolution — hover preview, social embeds | | |
| Poster | PNG, full resolution — static preview frame | | |

All assets can be downloaded individually or as a single zip bundle from the video modal.

### Render Queue

Active renders appear in the persistent queue bar below the header. The queue polls every 3 seconds and shows status progression:

```
Queued → Rendering poster → Poster done → Encoding video → Done
```

Failed renders show an error indicator. Click any queue item to navigate to that model's detail view.

---

## Sharing & Galleries

### Share Links

Every completed render has a public share page at `dx.gl/portal/v/{id}`. Anyone with the link can view the video without logging in. Use the Share button in the video modal or Export tab to copy the link.

### Galleries

Check multiple videos in Browse, then click **Share** in the selection strip to create a gallery. If one video is selected, the share link is copied directly. If two or more are selected, a gallery creation modal opens where you can set an optional title.

View and manage all galleries from the **Galleries** tab under Videos. Each gallery shows its title, video count, creation date, and actions to open, copy link, or delete.

---

## Tags & Organization

Tags help organize models and filter both the Models and Videos tabs.

### Adding Tags

Open a model's detail view, switch to the **Data** tab, and type tags in the tag input. The input offers autocomplete suggestions drawn from all your existing tags. Tags are automatically lowercased and trimmed. Maximum 20 tags per model.

### Filtering by Tag

A tag filter bar appears above the model/video grid. Click tags to filter (OR logic — showing items matching any selected tag). The tag bar can be collapsed via the toggle button. Your filter visibility preference is saved in localStorage.

### Tag Carry-over

Tags on a model automatically carry over to all videos rendered from that model, so you can filter videos by the same tags used to organize your models.

### Search

Press `/` to focus search. Search matches model name, title, SKU, and tags.

---

## Export

The **Export** sub-tab within the Videos tab shows a card for each video with public asset URLs — video, web video, and poster — ready for embedding in Shopify, Amazon, and other platforms. Each URL has a copy button. No authentication is required to access these URLs.

The **JSON** sub-tab provides the same data as a copyable or downloadable JSON array for programmatic integration.

---

## Billing & Credits

Render cost depends on quality tier: Standard (540p) costs 1 credit, HD (1080p) costs 4 credits, 4K costs 16 credits, and ProRes 4444 costs 64 credits. Your credit balance is always visible in the utility strip below the tab bar.

### Credit Packs

| Pack | Price | Per Credit |
|---|---|---|
| 10 credits | $9.90 | $0.99 |
| 100 credits | $79 | $0.79 |
| 1,000 credits | $490 | $0.49 |

Payments are processed securely by Stripe. See [Pricing](https://dx.gl/pricing) for full details.

### Signup Bonus

New accounts receive **10 free credits on signup** — enough for 10 full-quality 540p turntable videos. These credits behave identically to purchased credits: no watermarks, no restrictions, and they work on any quality tier. Credits never expire.

### Credit Deduction

Batch renders deduct all credits atomically — the batch fails entirely if you don't have enough.

### Promo Codes

Promo codes can be redeemed from the Billing tab for bonus credits.

### Transaction History

View all credit transactions (purchases, renders, refunds, promos, referrals) in the Billing tab. Paginated, 25 per page.

---

## Account & Security

Access account settings from the avatar menu → **Settings**.

### Display Name

Set a display name that appears instead of your email in the portal header and share pages.

### Password

Change your password from the Account section of Settings. If you signed up via OAuth (Google/Microsoft), you can set a password to enable email+password login as an alternative.

### Two-Factor Authentication

Enable 2FA from the Security section of Settings. DX.GL supports TOTP (time-based one-time passwords) compatible with any authenticator app (Google Authenticator, Authy, 1Password, etc.).

When you enable 2FA, you'll receive recovery codes — store them securely. They allow login if you lose access to your authenticator.

### OAuth Login

Sign up or log in with Google or Microsoft. OAuth accounts are automatically activated without email verification. If your OAuth email matches an existing account, the accounts are linked.

### Referrals

Share your referral link (found in Settings → Referrals) to earn credits when referred users make their first purchase.

---

## Support

Access the support system from the avatar menu → **Support**. You can:

- View existing support tickets and their status
- Create new tickets with a subject and message
- Reply to ongoing conversations

---

## Workshop

*Available in Studio and Full modes.*

Press **W** or click **Workshop** in the utility strip to open a full-width 3D model viewer and inspector. Workshop lets you examine any GLB/glTF model in detail:

- **Scene** — Hierarchy tree, mesh/material counts, file size breakdown
- **Meshes** — Per-mesh vertex/face counts, bounding box, draw calls
- **Materials** — PBR properties, texture previews, channel maps
- **Transform** — Position, rotation, scale, world matrix
- **Stats** — Total triangles, vertices, textures, draw calls, GPU memory estimate
- **Source** — Embedded glTF metadata and extensions
- **Warnings** — Potential issues (missing normals, oversized textures, unused materials)

Use **Save GLB** to download an optimized GLB, or **Add to Library** to import the model directly into your DX.GL library. You can also open any model from Models in Workshop via the model detail **Manage** tab → "Open in Workshop".

Press **Esc** to exit Workshop and return to the portal.

---

## API Keys

*Available in Pro, Studio, Data, and Full modes.*

Create API keys from the **utility strip** → **API Keys** (or the avatar menu). Keys allow programmatic access to the [REST API](https://dx.gl/portal/docs) for uploading models, creating renders, and downloading assets.

- Give each key a descriptive name and optionally set an expiration (in days)
- The raw token (`dxgl_sk_...`) is shown once on creation — copy and store it securely
- Keys can be revoked (and un-revoked) at any time
- API tokens use Bearer authentication: `Authorization: Bearer dxgl_sk_...`

See the [API Documentation](https://dx.gl/portal/docs) for full endpoint reference.

---

## MCP / Agent Integration

DX.GL provides a **Model Context Protocol (MCP)** server that lets AI agents import models, create renders, check costs, and download results via tool calls. Works with Windsurf, Claude Desktop, Cursor, and any MCP-compatible host.

### Available Tools

| Tool | Description |
|---|---|
| `ingest_model` | Import a 3D model from a URL |
| `list_models` | List models with tag/pagination filters |
| `get_model` | Get model details and render history |
| `create_render` | Create a video or dataset render |
| `create_batch_renders` | Create multiple renders atomically |
| `get_render` | Check render status (poll until done) |
| `download_render` | Get download URL for completed video |
| `get_account` | Check credit balance |
| `quote` | Estimate credit cost before committing |

### Connect Your Agent

Add this to your MCP client configuration (Windsurf, Claude Desktop, etc.):

```json
{
  "mcpServers": {
    "dxgl": {
      "serverUrl": "https://mcp.dx.gl/",
      "headers": {
        "Authorization": "Bearer dxgl_sk_..."
      }
    }
  }
}
```

Replace `dxgl_sk_...` with your API key from the API Keys section above. All tools use the same credit system — use the `quote` tool to check costs before committing.

### Cost Estimation

The [Quote endpoint](https://dx.gl/portal/docs#quote) (`POST /v1/quote`) lets agents estimate the credit cost for a set of renders before committing. Returns the total cost, per-item breakdown, current balance, and whether the account has enough credits.

### Full MCP Guides

For prompt examples, workflows, and tips, see the dedicated guides:

- [MCP for Video](https://dx.gl/docs/mcp-video) — automate turntable video production for e-commerce and marketing
- [MCP for Datasets](https://dx.gl/docs/mcp-datasets) — automate multi-view dataset generation for NeRF, 3DGS, and 3D reconstruction

---

## Keyboard Shortcuts

| Key | Action |
|---|---|
| `1` `2` `3` `4` | Switch tabs (Upload, Models, Videos, Datasets) |
| `←` `→` | Cycle sub-tabs within current tab |
| `/` | Focus search |
| `S` | Select all / deselect all (Models or Videos tab) |
| `A` | Select all (Models or Videos tab) |
| `G` | Cycle view mode (Grid ↔ List) |
| `Shift+Click` | Range select |
| `W` | Toggle Workshop (3D model viewer) |
| `Esc` | Clear selection, close modal, exit Workshop, navigate back |
| `?` | Open in-app help |

Shortcuts are disabled when typing in input fields. Modifier keys (Ctrl, Alt, Cmd) are passed through to the browser.