Studio
The Studio is a free browser-based 3D editor for building Minecraft render scenes — pose up to 8 players bone-by-bone, add props, light the scene, and export at up to 1080p. No install, no account, no paywall.
Everything on this page refers to /studio. The editor runs entirely in your browser (three.js + WebGL 2); the final render is produced server-side using the same engine the public API uses.
UI tour
The Studio is laid out as three regions plus a top bar:
- Top bar — app title, undo/redo, save, load, the transform tools (Move / Rotate / Scale / Focus), share, and (on narrow screens) the panel toggle.
- Viewport bottom bar — resolution toggle and the Render button.
- Left panel — scene options — players, prop library, environment (lighting / scenery / skybox), depth of field, camera, and ground shadow. Most of the scene-level setup happens here.
- Viewport — the live 3D preview. Clicking selects bones, props, or lights; the transform gizmo attaches to whatever's selected.
- Right panel — bone options — bone list for the active player, per-bone opacity, and mesh visibility toggles.
Mobile layout
On narrow screens only one panel is visible at a time, anchored to the left. A button in the top bar toggles between the scene options view and the bone options view. The Studio works on tablets and phones with touch controls, though detailed posing is easier with a mouse.
Loading players
Type a player identifier into the input at the top of the scene options panel and press Enter (or click Add). The Studio auto-detects the platform:
| You type | Loads as |
|---|---|
Dinnerbone | Java username |
069a79f4-44e9-4726-a5be-fca90e38aaf5 | Java UUID |
.MyGen | Bedrock gamertag |
.2533274793548956 | Bedrock XUID (explicit) |
2533274793548956 | Bedrock XUID (auto-detected — numeric) |
Bedrock identifiers should be prefixed with a . to disambiguate from Java usernames. Pure-numeric Bedrock XUIDs are detected without the prefix.
Bedrock players with a Character Creator model load with their real geometry and textures — hair, outfits, capes, and accessories all show up as they do in-game.
Bedrock players with classic skins
Bedrock accounts using a classic (non-Persona) skin work the same way as Persona accounts — the Studio falls back to fetching the skin texture via GeyserMC and applying it to a default model.
Uploading a custom skin
If a gamertag can't be resolved (wrong spelling, private profile, upstream services unreachable), or you just want to render an arbitrary skin that isn't tied to a live account, use the Upload Custom Skin section in the scene options panel. Click Upload Skin… and pick a .png from your computer, or drag the file straight onto the viewport.
- Accepted formats: 64×64 PNG (modern), 64×32 PNG (pre-1.8 legacy — arms and legs are mirrored automatically), and square HD multiples like 128×128 or 256×256. Anything else is rejected with a status-bar message.
- Steve or Alex: auto-detected from the arm pixels on upload. If the detection picks wrong (it occasionally does with skins that have transparent arm pixels), click the small face icon on the player card to flip the variant — the pose and any attached props carry over.
- Naming: the filename becomes the card name. Generic filenames like
skin.pngordownload.pngfall back toCustom #1,Custom #2, etc. - Swap behaviour: custom-skin cards don't support the double-click-to-swap interaction — there's no gamertag to resolve to. Upload a new skin to replace.
- Persistence: session-only. The PNG bytes live in your browser tab and are embedded in any saved scene file, but they're never stored server-side. Clearing your cache or opening the scene on a different device means re-uploading.
Once loaded, a custom-skin character poses, lights, and renders like any other player.
Multiple players per scene
Up to 8 players can appear in one scene. Add them one at a time; each gets its own card in the left panel. Click a card to make that player active for bone editing. Duplicates are allowed — the same character can appear multiple times in different poses.
Swapping players in place
Double-click a player card to edit its name. Enter a different identifier and the Studio loads the new player into the same slot, keeping the existing pose, props, and bone visibility settings. This is the fastest way to see how a pose looks on a different skin, or to produce a series of renders of different players in the same scene.
Removing players
Each player card has a remove button. When loading a shared scene (shortcode or .json), the scene's players load in order — fill or swap slots as needed.
Posing & bones
Select a bone by clicking it in the 3D viewport or in the bone list on the right panel. A transform gizmo attaches to the selection.
Gizmo modes
Three modes, switchable from the top bar or with a keyboard shortcut:
- Translate (W) — move the selection along an axis.
- Rotate (E) — rotate around an axis. The default mode for bone posing.
- Scale (R) — resize. Mostly useful for props; scaling a bone affects the attached mesh.
Click-through on outer layers
Clicking an outer mesh layer (jacket, sleeves, pants) automatically selects the underlying inner bone (body, arms, legs) so you don't have to hide layers to pose through them. You can still select outer layers explicitly from the bone list if you want to edit them directly.
Bone opacity
Each bone has an opacity slider in the bone options panel. Drop it below 1.0 to fade a bone out for compositing or to reveal what's behind it — useful when a head is blocking something or you want a ghost-limb effect.
Resetting
With a bone selected, click Reset Bone in the bone options panel to return that bone to its default transform. Reset All clears every bone on the active player back to the default pose. Both actions are undoable with Ctrl+Z if you reset by mistake.
Pose presets
Click Browse Poses to open the preset library — a growing collection of ready-made poses (standing, sitting, waving, action stances) you can apply in one click. Presets set all bone rotations at once; you can then fine-tune individual bones from there.
Applying a preset replaces the current pose for the active player only. Other players in a multi-player scene are unaffected. Presets don't change props, lighting, or camera — just bone rotations.
Props & items
Props are items you can place into the scene: swords, tools, blocks, food, and anything else in the built-in library. Click Browse Props for the item library or drag-and-drop a .glb file onto the viewport to upload your own.
Attaching to bones
When you add a prop that can be attached to a bone, the Studio prompts you to pick where it should go — choose a bone on one of the active players (e.g. right hand for a held sword, head for a hat) or choose world prop to free-place it in the scene instead. Attached props follow the bone's rotation; world props stay put wherever you leave them.
Uploading your own GLBs
Drag any .glb file onto the viewport to add it as a custom prop.
- Format: GLB only (not GLTF, OBJ, or FBX).
- Size limit: 5 MB per file.
- Persistence: Session-only. Uploaded props live in your browser tab and are embedded in any saved scene file, but they're not stored on the server. If you clear your cache or open the scene on a different device, you'll need to re-upload.
- Auto-scaling: If a GLB's dimensions are very large or very small, the Studio scales it to a sensible size and reports what it did in the status bar.
.json file as base64, scenes with many custom props get large quickly. For shared templates in the gallery, prefer the built-in library where possible.
Duplicating props
Select a prop and press Ctrl+D, or click the + button on the prop's card, to duplicate it. Useful for arranging several of the same item (stacks of blocks, a row of torches, etc.).
Environment
The Environment button in the scene options panel opens a single window covering three kinds of atmosphere: the lighting preset, the scenery backdrop, and the skybox panorama. Each lives in its own tab; pick one per tab, or leave any of them off for a plain transparent render with just your characters.
Lighting
The Lighting tab lists curated presets that set the key light's colour, intensity, shadow behaviour, and overall mood in one click — think neutral daylight, warm sunset, overcast, dramatic, and so on. The list grows over time as new looks are added.
Scenery
The Scenery tab picks a fixed Minecraft-built backdrop — characters pose inside the chosen scene and their shadows fall onto its geometry. Scenery is non-interactive: you can't move it, scale it, or click on its parts. Pick None to leave the stage empty (the default).
Skybox
The Skybox tab wraps the scene in a panoramic backdrop — a sky, a space view, a stylised mood, whatever's in the library. The skybox also tints the scene's ambient lighting so characters pick up the panorama's colour temperature automatically: a bright sky lifts everything, a dark one dims it with the panorama's tone. Pick None for a transparent background, which works best when you're compositing the render into something else.
Scene lights
Separate from the preset, you can drop up to 4 lights in the scene — directional "sun" lights, spotlights, or point lights. The default scene starts with one key directional light positioned above the character; add more from the Lights section of the scene options panel.
Light types
- Directional — parallel rays from a direction, like the sun. The default for the key light.
- Spot — a cone cast from a point. Has two extra parameters:
angle(cone width) andpenumbra(edge softness). - Point — emits in all directions from a single point, like a torch or lantern.
Per-light controls
- Position — drag the light's helper sphere in the viewport, or translate it with the gizmo.
- Colour — any hex colour. Warm for sunset, cool for moonlight, coloured for stylised effects.
- Intensity — brightness multiplier.
- Cast shadow — toggle per-light. Shadows are expensive; more than one shadow-casting light noticeably slows the preview.
Sun widget
A miniature of the key sun light sits permanently in the bottom-right of the viewport — a yellow ball orbiting a centre marker on a horizon ring. Drag anywhere inside the widget to rotate the sun: left/right for compass direction, up/down for elevation (above or below the horizon). The real sun direction updates live, so you can re-aim shadows without leaving a perfectly framed shot to go find the light helper in world space. The ball also picks up the active lighting preset's colour, so a sunset preset shows a warm sun, moonlight shows cool, and so on.
Ground shadow
A soft ground shadow plane under the character is enabled by default. Toggle it off if you want the alpha completely clean — renders are always transparent-backgrounded, so removing the shadow gives you a flush cutout for clean compositing. When a scenery backdrop is active the ground shadow is hidden automatically, because the scene's own floor already receives real shadows and stacking both would double-darken them.
Shadow softness
The Shadow softness slider blurs shadow edges across every shadow-casting light. Left end is crisp and graphic; right end is soft and cinematic. Works on both character self-shadows and shadows falling on scenery.
Camera & viewport
Orbit, pan, zoom
| Action | Mouse | Touch |
|---|---|---|
| Orbit | Right-click drag | One-finger drag |
| Pan | Middle-click drag | Two-finger drag |
| Zoom | Scroll wheel | Two-finger pinch |
Orbit pivots around the current selection if something is selected, otherwise around the camera target. Pressing F — or tapping the Focus button in the top bar on touch devices — frames the selection (or the whole scene if nothing is selected), handy when you've drifted away from the action.
Fly mode
Hold right-click and use W/A/S/D to move forward/left/backward/right, Space to move up, and Shift to move down — same as Minecraft creative mode. Q/E also work as alternatives for down/up. Moving the mouse while RMB is held looks around. This is the fastest way to reposition the camera for a specific angle.
Preview quality
Three quality levels for the live viewport — change in Settings. These affect preview only; the final render is always full quality.
| Preview | Pixel ratio | Shadows | Depth of field |
|---|---|---|---|
| Low | 1.0 | Off | Off |
| Medium | 1.5 | Off | Off |
| High | 2.0 | On | On |
If the viewport feels sluggish — especially on a laptop or integrated GPU — drop to Medium or Low. The final render is identical regardless.
Depth of field
Depth-of-field adds a photographic focus/blur effect. Enable it with the DoF checkbox in the scene options panel. Three parameters:
- Focus — distance from the camera that stays sharp.
- Aperture — how quickly things go blurry outside the focus zone. Wider aperture = more blur.
- Max blur — caps the blur amount so distant objects don't smear into soup.
DoF previews live in the viewport only on High preview quality. On Low or Medium you'll see the setting stored but no blur in the preview — the final render always applies DoF if the toggle is on.
Mesh visibility
Every player has a per-mesh hide list. Toggle individual meshes off to remove them from the render — useful for taking a hat off, exposing a base body layer, or hiding a cape.
Classic skin mesh names
For Java skins and classic Bedrock skins (the 64×64 / 64×128 kind), these mesh names are available:
body,head,hatleftArm,rightArm,leftSleeve,rightSleeveleftLeg,rightLeg,leftPants,rightPantscape,jacket
Persona models
Bedrock Persona / Character Creator models have their own mesh hierarchy — one mesh per Character Creator piece (a hair style, a jacket, a pair of boots, etc.). The bone list shows the real names from the loaded model, so you can hide any individual piece without affecting the rest.
Rendering & export
The Render button and the resolution toggle sit at the bottom of the viewport, so they're always within reach while you're composing a shot. Clicking Render produces a final image server-side using the same engine the public API uses — so what you save matches what the API will produce for anyone else rendering your template.
Resolution
| Option | Output | Notes |
|---|---|---|
| 360p | Roughly half-size | Fast — good for previews and iteration. |
| 720p | Full default size | Balanced. The public API is capped at 720p. |
| 1080p | 1.5× default size | Studio-only. Best for wallpapers and hero art. |
Format
- WebP (default) — smaller files at the same visual quality. Supported by every modern browser.
- PNG — lossless, larger files, widest compatibility. Both WebP and PNG preserve the transparent background, so pick on filesize/compatibility grounds rather than transparency.
Downloading
The rendered image appears in the render modal with a Download button. Renders are also cached server-side — if you render the same scene + players + format again, you'll get the cached copy instantly.
Browsing the gallery
Click Gallery in the top bar to browse scenes shared by the community. The gallery modal shows a thumbnail for each scene; search by name, description, or tag, and sort by newest or most-rendered. Click a tile to open that scene in the Studio — from there you can tweak the pose, swap players, and render it as your own.
Saving & loading scenes
Two ways to persist a scene:
Scene files (.json)
Press Ctrl+S (or use the Save button) to download the current scene as a JSON file. The filename looks like mcrender-scene-20260416-1430.json. Load one with the Load button, or drag the .json file onto the viewport.
Scene files include everything: players, all bone transforms, props (with any uploaded GLBs embedded as base64), lighting, camera, DoF settings, and mesh visibility. Opening a scene file on a different machine or browser reproduces the scene exactly.
Autosave
The Studio autosaves to your browser's localStorage whenever you change something. Reloading the tab restores the last scene you were working on. Autosave can be turned off in Settings if you prefer to manage saves manually.
.json file or publish a shortcode.
Loading shared scenes
Paste a shortcode into the load dialog (or navigate to /studio/abc123) to load a public template into the editor. The scene loads with its original players — you can keep them, swap some out, or add your own.
Keyboard & mouse reference
Global shortcuts
| Shortcut | Action |
|---|---|
Ctrl+S / ⌘S | Save scene to .json |
Ctrl+Z / ⌘Z | Undo |
Ctrl+Y or Ctrl+Shift+Z | Redo |
Ctrl+D / ⌘D | Duplicate selected prop |
Escape | Close open modal / dialog |
Viewport & gizmo
| Shortcut | Action |
|---|---|
F | Frame selection (or whole scene) |
W | Translate mode |
E | Rotate mode |
R | Scale mode |
Fly mode (hold right-click)
| Shortcut | Action |
|---|---|
W / A / S / D | Move forward / left / back / right |
Space or E | Move up |
Shift or Q | Move down |
| Mouse | Look around |
Mouse
| Button | Action |
|---|---|
| Left-click | Select bone / prop / light, or drag a gizmo handle |
| Middle-click drag | Pan |
| Right-click drag | Orbit (or fly mode while held + movement keys) |
| Scroll wheel | Zoom |
Settings & autosave
The Settings panel (gear icon in the top bar) exposes:
- Preview quality — Low / Medium / High (see Camera & viewport).
- Autosave — on by default. When on, the current scene is persisted to localStorage on every change.
- Undo depth — how many undo snapshots to retain. Default 50. Higher values use more memory.
Settings persist per-browser in localStorage under studio-settings-v1. The autosaved scene lives at mcrender.studio.scene — you can clear both by clearing site data in your browser.
Browser requirements
- WebGL 2 is required. Every modern browser from the last few years supports it.
- Desktop: Chrome, Firefox, Edge, and Safari all work. Chromium-based browsers tend to perform best on lower-end hardware.
- Mobile: iOS Safari and Android Chrome both work with touch controls. Posing is fiddly on small screens — a tablet is the minimum for comfortable editing.
- Offline: The Studio needs network access to load player skins, prop models, and lighting presets. Once loaded, existing scenes can be edited offline, but new players and new props require connectivity.
If the viewport is black or stuttering, the most common causes are: an old GPU driver, hardware acceleration disabled in browser settings, or a browser extension blocking WebGL. Dropping preview quality to Low is the first thing to try.