{"id":28409159,"url":"https://github.com/xeokit/xeopy","last_synced_at":"2025-06-25T00:31:33.869Z","repository":{"id":241403782,"uuid":"757078577","full_name":"xeokit/xeopy","owner":"xeokit","description":"xeopy = xeokit + Python","archived":false,"fork":false,"pushed_at":"2024-06-29T16:16:12.000Z","size":1772,"stargazers_count":12,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-02T14:20:02.975Z","etag":null,"topics":["3d","3d-tiles","aec","bim","bim-viewer","geospatial","gis","global-coordinates","ifc","ifc-viewer","las-viewer","laz-viewer","online-viewer","python","web-viewer","webgl","webgl-viewer","xeokit"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xeokit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","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-02-13T19:33:24.000Z","updated_at":"2025-04-03T14:10:59.000Z","dependencies_parsed_at":"2024-05-28T07:03:39.690Z","dependency_job_id":"e509e3c0-51b2-490f-9bb1-4bab5139bcfb","html_url":"https://github.com/xeokit/xeopy","commit_stats":null,"previous_names":["xeokit/xeopy"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/xeokit/xeopy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xeokit%2Fxeopy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xeokit%2Fxeopy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xeokit%2Fxeopy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xeokit%2Fxeopy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xeokit","download_url":"https://codeload.github.com/xeokit/xeopy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xeokit%2Fxeopy/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261782275,"owners_count":23208901,"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":["3d","3d-tiles","aec","bim","bim-viewer","geospatial","gis","global-coordinates","ifc","ifc-viewer","las-viewer","laz-viewer","online-viewer","python","web-viewer","webgl","webgl-viewer","xeokit"],"created_at":"2025-06-02T05:42:52.989Z","updated_at":"2025-06-25T00:31:33.838Z","avatar_url":"https://github.com/xeokit.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# xeopy = xeokit + Python (Work in progress project)\n\n## Description\n\nxeopy is a library which allows to create xeokit scenes using Python.\n\nxeopy is fully written in Python.\n\nIt is currently a proof-of-concept prototype. Use on your own risk.\n\nThe scope, namings and structure of it is changing rapidly, that's why it's not published as a PIP package right now.\n\nxeokit itself is a web programming toolkit for AEC graphics. Find more here: https://xeokit.io/\n\n## Features\n\nRight now you can control some things regarding:\n- Box\n- Mesh\n- Sphere\n- VectorText\n- CameraSettings\n- WebIFCLoaderPlugin\n- XKTLoaderPlugin\n- Viewer\n- SectionPlanes\n\nI'm open to hear suggestion regarding what should be added. Please open an issue here and let me know! :)\n\n## Example files\n\n![Examples](imgs/examples_image.png)\n\nYou will find example files here: https://github.com/xeokit/xeopy/tree/master/xeopy/tests/examples\n\n## How to run it\n\n1. Clone this repository and configure Python interpreter\n2. Run one of the example .py files -\u003e it should generate html file\n3. Run generated html file on localhost. Some IDEs (such as PyCharm) will let you do it with one click of a button (for PyCharm just open generated html file and click web-browser logo).\n\nThere is no yet PyPi package published, as it is a prototype.\n\n## How it works\n\nxeopy concept is really simple: underneath it creates an html file filled with JS code which uses Xeokit. Later you can open such html file and see the results.\n\n## License\n\nFind the license here: https://github.com/xeokit/xeopy/blob/master/LICENSE.md\n\n## Development\n\n### Setup\n\nAfter clone it's good to create a venv (virtual environment).\n\nIn Pycharm you can do it like this:\n\n![Venv_pycharm](imgs/venv_pycharm.png)\n\n### Architecture\n\nIdea is that each small Python object should represent in **str** a tiny slice of JS code.\n\nAll these objects can be later put into **content** property of Xeokit object, so they can generate full code definition, if put in proper order.\n\n### Unit tests\n\nYou can find and run unit tests inside the project here: https://github.com/xeokit/xeopy/tree/master/xeopy/tests/unit_tests\n\nTo run these tests you will also need to install pytest library.\n\nIn Pycharm you can run all the tests by right-clicking the unit_tests folder and clicking to run all tests.\n\n![Unittest_pycharm](imgs/unittest_pycharm.png)\n\nYou can also install coverage package to see code coverage.\n\nIn Pycharm it's Run -\u003e Run 'Python tests in unit_tests' with Coverage\n\n## E2E tests for Xeokit examples itself\n\nThere is an endtoend_xeokit_tests folder where you can optionally build E2E test for Xeokit itself.\n\nIt uses Selenium to build test these things. To run it you need to place a geckodriver (0.34.0, https://github.com/mozilla/geckodriver/releases)\nexactly where the .py file is located.\n\nIt will also require a proper version of browser installed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxeokit%2Fxeopy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxeokit%2Fxeopy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxeokit%2Fxeopy/lists"}