A skybox generator turns a written world brief into the six square faces a real-time 3D engine expects—not a single wallpaper JPEG you paste behind the camera. For browser games built with Three.js, that means cubemap faces in the correct order, horizon continuity that survives a 360° look-around, and lighting cues that match your ground materials. Sorceress stitches that path together across AI Image Gen, Image Expander, and export steps you can repeat every time you ship a new biome. If you already use Shade for distant landscapes or Tile for ground loops, treat this dome workflow as the ceiling that ties the scene together. New to the stack? Start from the tools guide, or open Wizard Genie when you want prompts assembled for you. For broader scene assembly, see Depth’s browser-game walkthrough; for surface detail on props and floors, Material Forge sits one click away.
What a skybox generator actually outputs for 3D games
Ask ten artists what a “skybox” is and you will hear ten slightly different answers. In production terms, a skybox generator should deliver assets your renderer can load without manual guessing: six square images that form the interior of a cube around the player, or—less commonly for WebGL—a single equirectangular map consumed by an environment shader. The cube format remains the lingua franca for Three.js CubeTextureLoader and for asset libraries like Poly Haven, where each face is authored independently yet must align at every edge.
Those faces are not arbitrary thumbnails. Each one is typically power-of-two (512, 1024, or 2048 pixels square) and shares an identical horizon line height across all four side faces. The top face captures zenith—cloud tops, aurora, or a hard sci-fi ceiling panel. The bottom face is often dark ground haze or a stylized void; many teams tint it to match fog color so the floor plane never reads as a cardboard cutout. A competent skybox generator documents which convention it uses for face naming and axis orientation, because “pos-x” in one tool is not always “right” in your engine until you verify once.
Sorceress targets the cubemap export path first. You still generate in equirectangular space—models excel at wide panoramas—but the pipeline’s job is to land you on six PNGs ready for CubeTextureLoader with the order Three.js documents: pos-x, neg-x, pos-y, neg-y, pos-z, neg-z. That sequence maps to right, left, top, bottom, front, and back in a right-handed scene when you follow common glTF-style camera defaults. Lock it on a sticky note once; future you will not re-debug upside-down suns.
Environment maps also drive image-based lighting when you use a PMREM pass or an equivalent prefilter step. Even if your sky is flatly emissive in the fragment shader, the same six faces can feed a blurred radiance map for metallic props. That is why a skybox generator belongs in the same conversation as Material Forge: the sky sets the key fill direction your metals expect.
Teams sometimes debate LDR PNGs versus HDR EXR for domes. For stylized browser titles, eight-bit faces with a gentle gradient in the zenith are enough; for PBR-heavy scenes, an HDR equirect source before cubemap split preserves sun disk intensity for bloom thresholds. Pick one lane per project and stay in it—mixing formats across biomes makes exposure tuning a weekly chore.
Why single flat panoramas fail as engine skyboxes
A gorgeous 2:1 equirectangular JPEG looks finished in a viewer. Drop it straight into a game and the seams argue with themselves. Equirectangular projections compress pole detail and stretch horizons; generative models often drift hue at the left-right wrap line because that is where training data hides discontinuities. When you sample that panorama inside a cube shader without remapping, you inherit those faults as a vertical scar at ±X.
Single panoramas also confuse scale. Players do not stand at the center of a photographic sphere—they stand inside a box whose walls must meet at ninety degrees. A cloud bank that curves naturally in equirect space can look pinched on the cubemap corners unless you expand and reproject with headroom at the seams. Engines that accept only cubemaps force you to split anyway; doing it late means painting fixes by hand.
Resolution is the other trap. A 2048-wide equirect gives roughly 512 pixels per face if you split naively—fine for mobile, thin for desktop. Upscale after the fact and you smear stars; upscale before split and you pay twice. The fix is deliberate: generate wide, expand selectively at the horizon belt, then export faces at the target size your browser game budget allows.
Finally, legal and pipeline hygiene matter. A random panorama from an image search carries no metadata about commercial use. A skybox generator session on Sorceress keeps prompts, seeds, and exports in one place so you can rebuild the dome when art direction shifts from “rust belt dusk” to “teal vaporwave noon.”
Some tutorials suggest dropping a equirect texture on an inverted sphere instead of a cubemap. That can work in prototypes, but you still fight pole distortion and you pay a sphere draw with custom UVs. Cubemaps align with hardware sampling paths and with the asset habits artists already learned from Poly Haven—standardize early and your shader code stays boring in the best way.
The Sorceress skybox generator pipeline in four steps
Think of the Sorceress skybox generator as four locked stations on an assembly line—no secret fifth step hidden behind a menu. You anchor art direction, draft equirectangular skies in AI Image Gen, widen problem zones in Image Expander, then export cubemap faces for Three.js. Each station has a clear credit cost and a clear artifact you can drop into version control.
Step 1 is creative control: horizon height, sun vector, palette, and forbidden motifs written down before you spend credits. Step 2 is bulk generation—two or three equirect drafts at 2:1 using models tuned for wide scenes. Step 3 is surgical expansion at the left-right seam and sometimes the zenith disk, where generative models love to wobble. Step 4 is cubemap export with consistent naming so your loader code never branches per biome.
Optional accelerators exist. Wizard Genie can assemble prompts when you would rather describe mood in plain language than memorize negative prompts for “lens flare clutter.” The tools guide links every station if you forget which URL you bookmarked. The pipeline deliberately avoids DCC tools you do not need for a WebGL shipping path—if you already live in Blender for meshes, import the six PNGs there for a sanity spin, but that is validation, not dependency.
Repeat the same four steps for every biome: desert noon, overcast harbor, neon midnight. Consistency beats heroics; your players notice when the sky and ground share a sun direction, not when cloud puff seventeen is unique.
Step 1 — lock horizon, sun, and palette before you render
Before any skybox generator run, write a quarter-page brief you can paste into every prompt variant. State horizon line height as a fraction of frame (“horizon at 42% from bottom”), sun azimuth and elevation (“sun 15° left of center, 25° above horizon”), and a palette of three hex values with roles: key sky, cloud shadow, haze. Add negatives: no birds, no text, no border vignette, no fisheye circle. Models obey negatives inconsistently, but omitting them guarantees surprises.
Match your ground plane. If Tile produced warm sand, a cyan sky reads as color grading error unless that is the joke. Pull fog color from the same haze swatch you will later assign in Three.js scene.fog so the world box feels sealed.
Pick target face resolution now. Mobile WebGL often ships 512-per-face cubemaps; desktop demos can afford 1024. Your equirect draft should be at least double the face size in width—2048 minimum for 1024 faces—so downsampling hides compression. Note the aspect: equirectangular is always 2:1 width to height.
Document axis intent. “Front face shows the main landmark” prevents you from exporting a cubemap where the hero spire sits on the back wall. One sentence in the brief saves a reorder pass in code.
Sun consistency is the hidden boss fight. If your level geometry implies afternoon shadows stretching northeast, but the skybox sun sits due west at noon, every screenshot looks composited. Sketch a top-down arrow on the brief matching your directional light in Three.js—one source of truth for both the dome and the key light on meshes.