Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Panoveil

Edit 360° photos in the browser, while actually looking around inside them.

Use it here: panoveil.vercel.app — nothing to install, photos stay on your device.

Equirectangular images are a pain to edit flat: everything near the poles is stretched, straight lines bend, and a blur that looks fine in Photoshop turns into a smear once the photo is on a sphere. Panoveil lets you pan around the panorama like a viewer would, put your edits where you see them, and then writes the flat 2:1 image back out with the projection math handled for you.

Everything runs client-side. Photos never leave your tab.

Features

  • WebGL 360° viewer, drag to look around, scroll to zoom
  • Blur or pixelate regions (faces, plates, screens) with adjustable soft edges. The effect is computed on the perspective view, so it stays clean near the poles and across the 180° seam
  • Rectangles, ellipses, arrows, freehand drawing
  • Text labels, with an optional background pill in any color
  • Click objects to select them, drag to move, grab corners to resize, rotate anything
  • Undo/redo and an object list for re-editing
  • Save/load your work as a small .panoveil.json file
  • JPG export keeps the GPano 360° metadata, so Facebook and Google Photos still recognize the result as a panorama (PNG export too)
  • Built-in sample scene if you don't have a panorama handy
  • Light and dark themes, installable as a PWA, works offline

How it works

Annotations aren't drawn on the warped equirect image. Each object remembers the camera pose it was created under, and its geometry lives on the flat perspective plane of that pose. At export a shader walks every equirect pixel, converts it to a ray, rotates the ray into the stored camera, and samples the flat annotation. Pole distortion and the seam wrap-around fall out of that for free. Blur regions additionally pull the underlying image into the same flat patch, blur it there, and reproject the result.

Running locally

Static files, no build step. Any web server works:

git clone https://github.com/betweenthebars1111/panoveil.git
cd panoveil
npx serve            # or: python3 -m http.server 8080

Opening index.html straight from disk won't work, ES modules need http.

Note for development: the service worker caches the app shell, so reload twice after changing a file (or enable "Update on reload" in DevTools).

Browser support

Current Chrome, Edge, Firefox and Safari. WebGL2 preferred; WebGL1 falls back with a barely visible 1px seam. Images wider than 8192px (or your GPU's max texture size) are downscaled on load.

Roadmap

  • Cubemap import/export
  • Pinch-to-zoom and better mobile gestures
  • Carry the original EXIF into exports
  • Multi-select and duplication

License

MIT


Built by Jimwell Cruz. This started as the privacy-blur tool inside the CLSU Virtual Tour capstone project, where blurring faces in 360° panoramas by hand got old fast.

About

Free, open-source 360° photo editor — blur faces, add shapes and text while looking around inside the panorama. Runs entirely in your browser.

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages