Make a 360 skybox with AI
Describe a sky or a place and get a 360 panorama to turn into a cubemap here.
Texture your 3D model with AI
Upload a GLB, OBJ or FBX, describe the look, and AI paints it from every side.
How to convert a panorama to a cubemap
- 1
Add your panorama
Drop a 2:1 equirectangular JPG, PNG or WebP (a 360 photo or an HDRI preview), or try the sample.
- 2
Pick engine and size
Choose the face order for your engine, a face size (auto is width / 4) and a yaw offset if the front is not where you want it.
- 3
Check it in 3D
The labelled faces and a drag-to-look 3D preview show the cube exactly as you will download it.
- 4
Download
Save 6 faces as a ZIP or one by one, or one image as a horizontal cross, vertical cross or 6x1 strip.
Use the cubemap in three.js, Unity, Unreal or Godot
three.js
- Pick the three.js preset and download the ZIP (px, nx, py, ny, pz, nz).
- Load them in that order: new THREE.CubeTextureLoader().load([px, nx, py, ny, pz, nz]).
- Set scene.background (and scene.environment for reflections) to the texture, with colorSpace = THREE.SRGBColorSpace.
Unity
- Pick the Unity preset and the Horizontal cross (4x3) layout, then download the PNG.
- In Unity, select the image, set Texture Shape to Cube and click Apply; the cross is detected automatically.
- Assign it to a Skybox/Cubemap material and set that material in Lighting > Environment > Skybox Material.
Unreal Engine
- For a sky, Unreal imports a long-lat .hdr directly as a Texture Cube; use your original HDR file if you have it.
- For a DDS cube or a cubemap made in another tool, pick the Unity / DirectX preset: it uses the DirectX +X, -X, +Y, -Y, +Z, -Z face order that DDS cube tools expect.
- Assemble the 6 faces into a DDS cubemap with a DDS tool, import it, and use it in a sky sphere or a Sky Light set to a specified cubemap.
Godot 4
- Pick the Godot preset and the Strip 6x1 layout (X+, X-, Y+, Y-, Z+, Z-).
- In the Import dock, set Import As to Cubemap, Slices to 6x1, and reimport.
- Sample it in a sky or spatial shader with texture(cubemap, EYEDIR). For a plain sky, Godot can also use the panorama directly in a PanoramaSkyMaterial.
Cubemap face order by engine
Each engine stores the same 6 views under different names, and some store them mirrored or turned, so the presets do more than rename files. three.js mirrors x when it reads a CubeTexture, so its px face is the view to the left. Godot uses its own -Z forward axes without that mirror.
| Face (Unity axes) | three.js | Unity / DirectX | Godot 4 |
|---|---|---|---|
| Right | nx (2nd) | Right +X (1st) | X+ (1st) |
| Left | px (1st) | Left -X (2nd) | X- (2nd) |
| Up | py (3rd) | Up +Y (3rd) | Y+ (3rd) |
| Down | ny (4th) | Down -Y (4th) | Y- (4th) |
| Front (image centre at yaw 0) | nz (6th) | Front +Z (5th) | Z- (6th) |
| Back | pz (5th) | Back -Z (6th) | Z+ (5th) |
Layouts: 6 separate images, horizontal cross (4x3, -X +Z +X -Z across the middle), vertical cross (3x4, -Z under -Y turned 180°) and a 6x1 strip in +X -X +Y -Y +Z -Z order.
More free texture tools
Frequently Asked Questions
Unity, Unreal Engine, Godot and three.js are named only to describe compatibility; The3DAI is not affiliated with or endorsed by them.