โ 3D Model Ready
How Image to 3D Conversion Works
Converting a flat photograph into a three-dimensional model is, fundamentally, a problem of estimating depth โ figuring out where objects in the image sit in 3D space relative to the camera. This tool solves that problem in two distinct ways, and you can switch between them using the mode tabs above.
Classic Mode uses a straightforward and very old trick: it treats pixel brightness as a proxy for depth. Light areas of the image are interpreted as closer to the camera; darker areas recede into the background. This works surprisingly well for certain subjects โ landscapes viewed from above, macro shots of textured surfaces, high-contrast portraits with strong rim lighting โ and it has the considerable advantage of being entirely instant. No neural network to download, no GPU needed. The conversion happens in a fraction of a second regardless of your hardware.
AI Mode is meaningfully different. It loads a compact monocular depth-estimation model โ a MiDaS-class architecture trained on millions of images โ directly into your browser's JavaScript runtime using TensorFlow.js. The model doesn't just look at brightness; it analyses perspective cues, relative object sizes, occlusion patterns, and texture gradients to produce a much more nuanced depth map. The resulting 3D mesh has better spatial relationships and is more convincing when viewed from multiple angles. The trade-off is a one-time model download of approximately 25โ35 MB on the first use; subsequent runs are fast because the browser caches the model weights.
In both modes, the depth map is used to displace a flat grid mesh: each vertex of the grid is pushed outward or inward along the Z-axis in proportion to the depth value at that pixel location. The original photograph is then projected onto the mesh as a texture, so the result looks like a physical relief of your photo. The mesh is rendered in the interactive Three.js preview below, and exported in your chosen format.
Step-by-Step Guide
-
Prepare your image. Choose a JPG, PNG, or WebP photograph. Images with clear depth cues work best โ a landscape with a distinct foreground and background, a product shot on a neutral background, or an aerial or top-down view. Very flat images (a sheet of paper, a white wall) will produce equally flat 3D results. Ideal resolution is 500โ4000 pixels wide; larger files are automatically sampled down to 128ร128 for the mesh grid.
-
Upload the file. Drag and drop your image into the upload zone, or click "browse" to open a file picker. A thumbnail preview will appear in the upload box confirming the image has loaded. Your file is read by the browser locally โ it does not leave your device.
-
Select your mode. Click the "Classic Mode" or "AI Mode" tab. For quick results or simple subjects, Classic Mode is recommended. For photos with complex depth relationships โ rooms, faces, outdoor scenes โ AI Mode will produce a more accurate 3D shape. If you are on a slow connection or low-end device, stick with Classic Mode.
-
Click "Convert to 3D". The progress bar tracks each step of the conversion. AI Mode will show a model-loading step if this is your first run. Classic Mode shows a single bar fill. The process typically takes under 2 seconds in Classic Mode and 5โ20 seconds in AI Mode depending on your hardware.
-
Inspect the 3D preview. Drag to rotate the mesh, scroll to zoom in and out. Use the wireframe button in the floating toolbar to see the underlying mesh structure. The preview runs fully in your browser โ no server is involved.
-
Export your chosen format. Click GLB for use in game engines (Unity, Unreal, Godot, Babylon.js) or general 3D viewers. Click OBJ for maximum compatibility with Blender, Cinema 4D, Maya, and other DCC tools. Click STL for 3D printing โ import directly into PrusaSlicer, Cura, or Bambu Studio. All exports are generated entirely in your browser using Three.js.
Best Use Cases
- 3D printing bas-reliefs and panels: Landscape photos, portrait silhouettes, and coin designs convert well into printable surface reliefs. Export STL and add a flat base in your slicer.
- Game prototyping: Quickly generate rough terrain or prop meshes from reference photos without modelling from scratch. Export GLB and import directly into Unity or Godot.
- Blender reference mesh: Export OBJ and use it as a rough sculpting guide or displacement target inside Blender's Sculpt mode.
- Visual effects depth passes: Export the depth map PNG (see Image to Depth Map tool) for use in After Effects or DaVinci Resolve's 3D depth compositing effects.
- Educational demonstrations: Show students how depth maps work by converting the same photo in Classic Mode and then AI Mode and comparing the results side by side.
- Hobbyist photogrammetry alternative: For non-critical objects, a single-photo depth conversion gives a quick 3D sketch in seconds rather than the hours a full photogrammetry workflow requires.
AI Mode vs. Classic Mode
| Property | โก Classic Mode | ๐ค AI Mode |
|---|---|---|
| Speed | Instant (<1 s) | 5โ20 s (first run includes ~30 MB model download) |
| Depth quality | Brightness โ Z; accurate for high-contrast images | Neural depth estimation; handles complex scenes better |
| Best for | Landscapes, aerial shots, high-contrast subjects | Portraits, rooms, outdoor scenes, objects on plain backgrounds |
| Where it runs | 100% in your browser โ no downloads | In your browser via TensorFlow.js (model cached after first load) |
| Server involvement | None | None โ model downloaded from public CDN to your browser only |
| Works offline? | Yes (after page load) | Yes, after the model is cached by your browser |
Honest Limitations
Single-image depth conversion has real technical constraints โ here they are, stated plainly.
- Not a true 3D scan. The tool estimates 3D shape from one viewpoint. It cannot reconstruct the back or sides of objects the camera never saw. The output is a surface relief โ think bas-sculpture, not a solid volumetric object.
- Flat images produce flat results. A photograph of a white wall or a sheet of paper will produce a nearly flat mesh. The tool has nothing to work with if the image has no depth variation.
- AI depth is estimated, not measured. The depth model makes an educated guess. It can misinterpret mirrors, windows, repetitive textures, and heavily stylised images. Classic Mode makes the same kind of mistake more predictably.
- Mesh resolution is fixed at 128ร128. This gives a 16,384-vertex grid โ enough for a good preview and printable relief, but not high-polygon by professional modelling standards. This is a deliberate limit to keep the browser-side computation fast and accessible.
- Not suitable for photogrammetry-grade results. If you need a metrically accurate, textured, full 3D reconstruction of an object, you need proper photogrammetry software (RealityCapture, Metashape, COLMAP) fed 50โ200 photos from different angles. This tool is a quick approximation, not a professional scan pipeline.
Frequently Asked Questions
Yes โ that is exactly what this tool does. Upload any JPG file, choose Classic or AI mode, click Convert, and download a GLB, OBJ, or STL 3D file. No account, no payment, no watermark.
Upload your 2D image using the dropzone above, select a mode, then click Convert. The tool creates a depth map from the image and uses it to displace a 3D grid mesh, effectively lifting the flat image into three dimensions. Download the result as a standard 3D file format.
GLB (binary glTF) is the recommended modern format โ it bundles the mesh and its photo texture into one compact file, viewable in browsers, game engines, and AR apps. OBJ is the most broadly compatible format; it works in almost every 3D application but produces a separate .mtl and texture file. STL contains only geometry (no colour or texture) and is the standard format for 3D printing slicers.
If your source image has low contrast or low depth variation (for example, a sky, a white background, a solid-coloured surface), the depth map will have little variation and the mesh will appear flat. Try an image with clear foreground and background separation. Also try switching between Classic and AI Mode โ AI Mode often finds depth structure that Classic Mode misses in complex scenes.
Yes. Export as GLB for direct drag-and-drop into Unity (it imports glTF/GLB natively) or as OBJ for Unreal Engine. The mesh is relatively low-polygon (128ร128 grid), so it's suitable for background terrain, basic props, and rapid prototyping. For hero assets that need to be viewed up close, a higher-polygon sculpted mesh or proper photogrammetry scan will give better results.
Yes โ PNG files with transparency are accepted. Transparent areas are treated as the lowest depth value (background/zero), so the subject in the foreground will be naturally raised against a flat base. If you want to first remove a background before converting to 3D, use our Background Remover tool and then re-upload the transparent PNG here.
There is no server-side file size limit because the file never leaves your device โ it is limited only by your browser's available memory. In practice, images up to around 20 MB process without issues in modern browsers. Very large images (50 MB+) may cause slowdowns; the tool samples them down to 128ร128 for the mesh anyway, so uploading a smaller version of your photo is perfectly fine.
Related Tools
Written by the Image โ 3D team ยท Last updated