https://github.com/pyapp-kit/scenex
Declarative, reactive scene graph model, with backend adapter abstraction
https://github.com/pyapp-kit/scenex
Last synced: 11 months ago
JSON representation
Declarative, reactive scene graph model, with backend adapter abstraction
- Host: GitHub
- URL: https://github.com/pyapp-kit/scenex
- Owner: pyapp-kit
- License: bsd-3-clause
- Created: 2025-01-22T15:33:53.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-27T14:29:26.000Z (about 1 year ago)
- Last Synced: 2025-06-11T23:21:43.157Z (about 1 year ago)
- Language: Python
- Homepage: https://pyapp-kit.github.io/scenex/
- Size: 1.48 MB
- Stars: 1
- Watchers: 3
- Forks: 2
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# scenex
[](https://github.com/pyapp-kit/scenex/raw/main/LICENSE)
[](https://pypi.org/project/scenex)
[](https://python.org)
[](https://github.com/pyapp-kit/scenex/actions/workflows/ci.yml)
[](https://codecov.io/gh/pyapp-kit/scenex)
*Declarative, reactive scene graph model, with backend adapter abstraction*
---------
Scenex is a Python API for creating and manipulating 3D scenes.
It does not implement any rendering or graphics directly, but rather serves
as a high-level interface and adaptor for existing scene-graph libraries,
such as [vispy](https://vispy.org/) and [pygfx](https://pygfx.org/), and
hopefully others (like [datovis](https://datoviz.org/)) in the future.
The goal is to provide a clear scene graph model (backed by [pydantic](https://docs.pydantic.dev)
), with backend adaptors that connect the model to the actual rendering
engine. The models emit events upon mutation (using [psygnal](https://psygnal.readthedocs.io)),
and the adaptors listen to these events and update the scene graph.
Because the models are backed by pydantic, they can be easily serialized to JSON
and other formats, making it easy to save and load scenes, and define them
declaratively.