{"id":28664767,"url":"https://github.com/pyapp-kit/scenex","last_synced_at":"2025-07-19T17:04:33.266Z","repository":{"id":274636072,"uuid":"920680523","full_name":"pyapp-kit/scenex","owner":"pyapp-kit","description":"Declarative, reactive scene graph model, with backend adapter abstraction","archived":false,"fork":false,"pushed_at":"2025-05-27T14:29:26.000Z","size":1548,"stargazers_count":1,"open_issues_count":3,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-06-11T23:21:43.157Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pyapp-kit.github.io/scenex/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pyapp-kit.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,"zenodo":null}},"created_at":"2025-01-22T15:33:53.000Z","updated_at":"2025-05-27T14:29:20.000Z","dependencies_parsed_at":"2025-05-01T16:36:36.429Z","dependency_job_id":"1b425b2f-efa1-4a09-8d06-0ece0796bdb7","html_url":"https://github.com/pyapp-kit/scenex","commit_stats":null,"previous_names":["tlambert03/scenex","pyapp-kit/scenex"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/pyapp-kit/scenex","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyapp-kit%2Fscenex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyapp-kit%2Fscenex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyapp-kit%2Fscenex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyapp-kit%2Fscenex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyapp-kit","download_url":"https://codeload.github.com/pyapp-kit/scenex/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyapp-kit%2Fscenex/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259650955,"owners_count":22890385,"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":[],"created_at":"2025-06-13T13:10:10.503Z","updated_at":"2025-06-13T13:10:25.610Z","avatar_url":"https://github.com/pyapp-kit.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# scenex\n\n[![License](https://img.shields.io/pypi/l/scenex.svg?color=green)](https://github.com/pyapp-kit/scenex/raw/main/LICENSE)\n[![PyPI](https://img.shields.io/pypi/v/scenex.svg?color=green)](https://pypi.org/project/scenex)\n[![Python Version](https://img.shields.io/pypi/pyversions/scenex.svg?color=green)](https://python.org)\n[![CI](https://github.com/pyapp-kit/scenex/actions/workflows/ci.yml/badge.svg)](https://github.com/pyapp-kit/scenex/actions/workflows/ci.yml)\n[![codecov](https://codecov.io/gh/pyapp-kit/scenex/branch/main/graph/badge.svg)](https://codecov.io/gh/pyapp-kit/scenex)\n\n*Declarative, reactive scene graph model, with backend adapter abstraction*\n\n---------\n\nScenex is a Python API for creating and manipulating 3D scenes.\n\nIt does not implement any rendering or graphics directly, but rather serves\nas a high-level interface and adaptor for existing scene-graph libraries,\nsuch as [vispy](https://vispy.org/) and [pygfx](https://pygfx.org/), and\nhopefully others (like [datovis](https://datoviz.org/)) in the future.\n\nThe goal is to provide a clear scene graph model (backed by [pydantic](https://docs.pydantic.dev)\n), with backend adaptors that connect the model to the actual rendering\nengine.  The models emit events upon mutation (using [psygnal](https://psygnal.readthedocs.io)),\nand the adaptors listen to these events and update the scene graph.\n\nBecause the models are backed by pydantic, they can be easily serialized to JSON\nand other formats, making it easy to save and load scenes, and define them\ndeclaratively.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyapp-kit%2Fscenex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpyapp-kit%2Fscenex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyapp-kit%2Fscenex/lists"}