https://tomosud.github.io/env/
Create, edit, and preview HDR environment maps in the browser. Preview your models in realtime and export lightmaps to use in your React Three Fiber projects or in 3D applications like Blender, Cinema 4D, etc.
This repository is a fork of pmndrs/env. Almost all of the original functionality remains intact, with additional export and workflow features layered on top.
Thanks to the pmndrs/env maintainers and contributors for the original project and foundation this fork builds on.
- Position and style your lights to fit the model
- Click on a point on your 3D model to position lights so that they illuminate the surface
- Export environment maps as
.pngor.hdr IBL Yawrotation for the environment (included in undo/redo history)- Right-side IBL MATCAP panel:
- Live hemisphere preview (auto-updates while editing)
- Optional left/right mirroring, saved with the scene JSON
- Save as
PNG,HDR, orOpenEXR (.exr) - Resolution selector (
1k,2k,4k) for exports
- HDR / PNG / EXR export
- Matcap viewer and matcap export
- Global light rotation (
IBL Yaw) - Scene history persistence with undo/redo (up to 100 steps)
- Folder-based save mode using the File System Access API
- Dedicated
Save JSON/Open JSONworkflow in folder mode - JSON backup creation on overwrite (
backup/*.json) - Drag-and-drop
.jsonrestore for scene recovery Image Namepersistence inside scene JSON
run.batThe script auto-detects yarn/corepack, installs dependencies when needed, and starts Vite on http://localhost:5173.
- Main toolbar
HDR/PNG: exports the full environment map (equirectangular). IBL MATCAPpanel:PNGexports the matcap result.HDRexports the matcap result as Radiance HDR.EXRexports the matcap result as OpenEXR (half-float).
- In
Browser Downloads Mode, mainHDR/PNGexports also download a scene.json. - In
Folder Connect Mode, image exports write image files only. Scene JSON is managed separately withSave JSON.
Folder Connect Mode uses the browser File System Access API to write directly into a local folder.
- Start the app on
http://localhost:5173. - Click
Folder Connect Mode. - Choose a local folder and grant read/write permission.
- Set
Image Namein the toolbar. - Use
HDR/PNGto overwrite image files in the connected folder. - Use
Save JSONto save scene settings as a.jsonfile. - Use
Open JSONto restore scene settings from a.jsonfile in the connected folder.
Image Namecontrols the image export filename.- Main exports become
<Image Name>.hdror<Image Name>.png. - Matcap exports become
<Image Name>_matcap.png,<Image Name>_matcap.hdr, and<Image Name>_matcap.exr. - Saved scene JSON also stores
Image Name, and restoring that JSON restores the toolbar value. - The JSON filename is independent from
Image Name. - Changing the JSON save name does not change the image save name.
Save JSONopens a save dialog in the connected folder.- The dialog remembers the last JSON filename you saved or opened.
- If you overwrite an existing JSON file, the previous version is copied into
backup/with a timestamped name. - While the current scene differs from the last saved/opened JSON state,
Save JSONis highlighted in red.
- Folder mode requires a browser that supports the File System Access API.
- If folder mode is not available, use
Browser Downloads Mode. - Drag-and-drop
.jsonrestore still works in both modes.
This repo includes .github/workflows/deploy-pages.yml.
- Push to
main. - In GitHub, enable Pages with source
GitHub Actions. - The workflow builds with
VITE_BASE_PATH=/<repo-name>/and deploysdist/.