{"id":19106080,"url":"https://github.com/lobis/geometry-browser","last_synced_at":"2026-05-14T01:39:32.304Z","repository":{"id":140103516,"uuid":"354319342","full_name":"lobis/geometry-browser","owner":"lobis","description":"A simple TGeo (root) / GDML geometry web browser using ROOT's THttpServer.","archived":false,"fork":false,"pushed_at":"2021-04-06T05:04:07.000Z","size":654,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-22T10:16:57.308Z","etag":null,"topics":["high-energy-physics","jsroot","physics","physics-simulation","root-cern","threejs"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lobis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2021-04-03T14:57:26.000Z","updated_at":"2023-12-03T16:01:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"763acc80-dda7-4878-9878-add72055011b","html_url":"https://github.com/lobis/geometry-browser","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lobis/geometry-browser","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lobis%2Fgeometry-browser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lobis%2Fgeometry-browser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lobis%2Fgeometry-browser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lobis%2Fgeometry-browser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lobis","download_url":"https://codeload.github.com/lobis/geometry-browser/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lobis%2Fgeometry-browser/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33006699,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"ssl_error","status_checked_at":"2026-05-13T13:14:51.610Z","response_time":115,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["high-energy-physics","jsroot","physics","physics-simulation","root-cern","threejs"],"created_at":"2024-11-09T04:01:49.624Z","updated_at":"2026-05-14T01:39:32.273Z","avatar_url":"https://github.com/lobis.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ROOT Geometry Browser\n\n[![CI](https://github.com/lobis/geometry-browser/actions/workflows/ci.yml/badge.svg)](https://github.com/lobis/geometry-browser/actions/workflows/ci.yml)\n\nA simple `TGeo` ([root](https://root.cern.ch/doc/master/classTGeoManager.html)) / [`GDML`](https://root.cern.ch/doc/v614/group__Geometry__gdml.html) geometry web browser using ROOT's [`THttpServer`](https://root.cern.ch/root/htmldoc/guides/HttpServer/HttpServer.html).\n\n![GeometryBrowserScreenshot](https://user-images.githubusercontent.com/35803280/113485837-e65d6480-94af-11eb-98cd-83ffa62ca45b.PNG)\n\n# Requirements \n\nOnly [ROOT](https://root.cern/), the minimal version should work. It has been tested on ROOT `v6.22.08`. If you don't have ROOT installed, you can also run it in docker using the [official ROOT image](https://hub.docker.com/r/rootproject/root)\n\n# Usage\n\nTo start the server, just run the ROOT macro.\n\n```\nroot GeometryBrowser.C\n```\n\nYou can access the server in http://localhost:8090. If you want to use a different port, change the `PORT` variable in the script, or define an environment variable named `GEOMETRYBROWSER_PORT` to be equal to the port you want to use.\n\nThe default browser for `THttpServer` will open.\n\n![Geometry Browser On Startup](https://user-images.githubusercontent.com/35803280/113483324-20743980-94a3-11eb-89af-66d85cb0d798.PNG)\n\nTo open a new geometry, click on the `UpdateGeometryFile` icon (open folder). A prompt will open asking you for the file path. You can use relative or absolute path in your file system.\n\nAfter selecting the file to view its necessary to click the `reload` button for the changes to be visible. If the file was valid (valid GDML or root file with `TGeoManager`) there should be a new entry under the \"Objects\" directory with the name of your file. If the file was not valid, an empty object will appear.\n\n![usage](https://user-images.githubusercontent.com/35803280/113485440-bf059800-94ad-11eb-90e9-16b478ba7b94.gif)\n\n# API\n\nAs this is built using ROOT's THttpServer, the usual endpoints are exposed. More detailed information is available in the [documentation](https://root.cern.ch/root/htmldoc/guides/HttpServer/HttpServer.html).\n\nTo obtain the `json` representation of the geometry (which is itself a ROOT object) you would perform a `get` request to `http://host:port/Objects/name/root.json.gz`.\n\nIf we want to do this for a file called `/home/path/geometry.gdml.root`, the logic inside this code will strip the full file path of all leading directories and extensions so the name of the object will be: `geometry`. If we had a local server running on port 8090, we would do:\n\n```\nhttp://localhost:8090/Objects/geometry/root.json.gz\n```\n\nBeware that we have to add `/root.json.gz` at the end even though the object name didn't have any extension.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flobis%2Fgeometry-browser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flobis%2Fgeometry-browser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flobis%2Fgeometry-browser/lists"}