Local browser conversion · PNG, HDR, and EXR

Convert a panorama into six correctly oriented cubemap faces.

Upload a 2:1 PNG, HDR, or EXR. Processing stays in this browser.

PLAYTEX AI projects every output pixel through a cube direction, samples the equirectangular panorama with horizontal wrap-aware bilinear filtering, and names the six PNG faces for the selected engine. It does not crop six rectangles or upload the source.

Open the panorama converter · Check cubemap face order before export

What the converter produces

  • Six square PNG faces projected toward +X, −X, +Y, −Y, +Z, and −Z.
  • Unity, Unreal Engine, Godot, Roblox, or Three.js filenames derived from direction rather than guessed labels.
  • Individual face downloads or one ZIP containing the faces, a JSON manifest, and a README.
  • Deterministic evidence for 2:1 aspect ratio, left/right wrap continuity, pole detail, transparency, and source density.

Privacy and current limits

Decoding, analysis, projection, PNG encoding, and ZIP creation run in the current browser tab. The source is not uploaded by this tool, and reloading clears the working result.

Radiance HDR and OpenEXR inputs are accepted and tone-mapped locally, but this MVP exports eight-bit sRGB PNG faces. Keep the original HDR or EXR panorama for lighting workflows that need values above 1.0.

Supported naming targets

  • Unity. PLAYTEX AI names each loose image by direction; Unity 6 also recognizes six-frame sequences in +X, −X, +Y, −Y, +Z, −Z order. Unity can import a recognized cubemap layout or a latitude-longitude panorama; loose faces may need assembly into a supported layout or Cubemap asset.
  • Unreal Engine. Directional suffixes PX, NX, PY, NY, PZ, and NZ remain explicit. Unreal’s Texture Asset Editor reports cubemap faces in DDS order: +X, −X, +Y, −Y, +Z, −Z. Long-lat HDR/EXR import can be more direct for Sky Light workflows.
  • Godot 4. Godot documents X+, X−, Y+, Y−, Z+, Z− image order. Godot uses Y+ as up and Z− as forward. PanoramaSkyMaterial usually takes the original 2:1 panorama; six faces are intended for a Cubemap resource or custom sky shader.
  • Roblox. Roblox Staff mapping uses pz→SkyboxBk, ny→SkyboxDn, nz→SkyboxFt, nx→SkyboxLf, px→SkyboxRt, and py→SkyboxUp. The Up face is rotated 90° clockwise and Down 90° counterclockwise during projection, so PLAYTEX AI output should be uploaded as-is.
  • Three.js. CubeTextureLoader takes px, nx, py, ny, pz, nz in that exact array order. Three.js documents an internal positive/negative X handling difference between cubemap and scene handedness; keep the loader order and filenames together.

Panorama conversion questions

Does the converter upload my panorama?

No. File decoding, seam and pole analysis, cubemap projection, PNG encoding, and ZIP creation happen in the current browser tab. Closing or reloading the tab clears the working result.

Do HDR and EXR faces keep their full dynamic range?

No. The current converter accepts Radiance HDR and OpenEXR sources, tone-maps them for local preview, and exports eight-bit sRGB PNG faces. Keep the original HDR or EXR panorama for image-based lighting that needs values above 1.0.

Why can a valid face set still show seams?

A source panorama may already have a left/right wrap mismatch, strong pole detail, compression ringing, or incomplete spherical coverage. Target import filtering and face assignment can introduce additional seams after export.