{"id":17773595,"url":"https://github.com/patrislav1/pano-workflow","last_synced_at":"2025-07-18T02:40:02.205Z","repository":{"id":249684963,"uuid":"832124766","full_name":"patrislav1/pano-workflow","owner":"patrislav1","description":"Workflow for 360° VR panos with SLANT adapter and Hugin","archived":false,"fork":false,"pushed_at":"2024-08-04T12:10:05.000Z","size":55,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-12T15:09:27.415Z","etag":null,"topics":["equirectangular","equirectangular-panorama","gimp","gimp-plugin","hugin","panorama","panorama-stitching"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/patrislav1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-22T12:04:28.000Z","updated_at":"2024-08-04T12:10:08.000Z","dependencies_parsed_at":"2024-07-22T19:11:24.308Z","dependency_job_id":"3fccee8a-b5bb-4558-97dd-cf80ca64a34f","html_url":"https://github.com/patrislav1/pano-workflow","commit_stats":null,"previous_names":["patrislav1/pano-workflow"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/patrislav1/pano-workflow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrislav1%2Fpano-workflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrislav1%2Fpano-workflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrislav1%2Fpano-workflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrislav1%2Fpano-workflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/patrislav1","download_url":"https://codeload.github.com/patrislav1/pano-workflow/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrislav1%2Fpano-workflow/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265692707,"owners_count":23812206,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["equirectangular","equirectangular-panorama","gimp","gimp-plugin","hugin","panorama","panorama-stitching"],"created_at":"2024-10-26T21:45:14.356Z","updated_at":"2025-07-18T02:40:02.180Z","avatar_url":"https://github.com/patrislav1.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VR panorama workflow with Hugin, GIMP and [SLANT pano head](https://pt4pano.com/products/slant-nodalpunktadapter)\n\nThis is a set of scripts intended to build 360° x 180° panoramas shot in single-row technique with\na [SLANT panoramic head](https://pt4pano.com/products/slant-nodalpunktadapter).\n\nThe intention is to transform a set of photos into a\n[equirectangular panorama](https://wiki.panotools.org/Equirectangular_Projection)\nwith as little user intervention as possible.\n\n## Components\n\nThis repository is split into two parts:\n\n* A script that uses the [Hugin CLI tools](https://wiki.panotools.org/Hugin#Hugin_components)\n  to create a [Hugin](https://hugin.sourceforge.io/) project file\n\n* A [GIMP](https://www.gimp.org/) plugin to automate the pre- and post-processing\n  required for patching the zenith and nadir\n\n## Requirements\n\n* `bash` and `python3`\n\n* The [Hugin suite](https://hugin.sourceforge.io/). The script should work with any recent version.\n  It was tested with Hugin 2023.\n\n* [GIMP](https://www.gimp.org/). The plugin requires a GIMP version with Python3 interface;\n  at the time of writing this means installing the\n  [2.99.x development version](https://z-uo.medium.com/create-python3-plugin-for-gimp-the-basics-94ede94e9d1f),\n  that beta version is required until GIMP 3 is released.\n\n  The beta version can be easily installed via flatpak:\n  ```\n  flatpak install --user https://flathub.org/beta-repo/appstream/org.gimp.GIMP.flatpakref\n  ```\n\n  * The GIMP step (zenith and nadir patching) is already possible with GIMP out of the box\n    (see Filters -\u003e Map -\u003e Panorama Projection);\n    the plugin only eliminates manual steps through automation.\n\n  * To make GIMP aware of the plug-in, point it at the \"gimp-plugin\" folder in this repository:\n\n    * Edit -\u003e Preferences -\u003e Folders -\u003e Plug-ins\n\n    * Add the path to the \"gimp-plugin\" directory\n\n    * After restart, there should be a new menu entry (Filters -\u003e Panorama)\n\n# Usage\n\n## Create panorama\n\n* Call `create-pano.sh`, pointing it at the first photo of the series. It will select 8 consecutive image files for the panorama.\n\n  e.g. `scripts/create-pano.sh /path/to/img/DSCF0025.JPG`\n\n* The script creates a Hugin project containing the photo set, pre-aligns the photos\n  (using known parameters like slant angle, lens properties, angle between images),\n  creates control points and conducts a first optimization run.\n\n* After the Hugin project is built it is opened in Hugin Panorama Creator GUI.\n\n* Hugin GUI should already show a decent panorama; now it's possible to do some fine tuning\n  (move/drag/straighten, further optimization etc)\n\n* Select panorama format \u0026 resolution\n\n* Finally stitch the panorama from the GUI or on the command line (e.g. `hugin_executor --stitching tmp/pano_final.pto`).\n\n## Patch zenith \u0026 nadir\n\n* Open the stiched panorama in GIMP.\n\n* Run Filters -\u003e Panorama -\u003e Extract Zenith and Nadir\n  * Two new layers should appear, containing the Zenith and Nadir in rectilinear projection.\n\n* Patch the Zenith and Nadir layers until satisfied.\n\n* Run Filters -\u003e Panorama -\u003e Reinsert Zenith and Nadir\n  * The Zenith and Nadir layers should be reverted into equirectangular projection.\n\n* The panorama can now be flattened \u0026 exported for further editing or publishing.\n\n# Compatibility\n\nThe Hugin script was created for and tested with a Samyang 8mm f/2.8 Fisheye \u0026 Fuji X-E2\non a [PT4Pano SLANT pano head](https://pt4pano.com/products/slant-nodalpunktadapter).\nThis setup requires 8 single-row shots for a 360° x 180° panorama.\n\nThe script should work out of the box with any single-row fisheye setup using 8 shots for 360˚.\n\nIt should be easily adaptable for similar setups that use a different number of shots.\n\n# TODO\n\n* Support exposure bracketing for HDR panoramas.\n* Use ML / GAN to \"auto-patch\" zenith and nadir without user intervention.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatrislav1%2Fpano-workflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpatrislav1%2Fpano-workflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatrislav1%2Fpano-workflow/lists"}