Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nojoule/joulegl
Low-level rendering framework in python
https://github.com/nojoule/joulegl
glsl opengl python rendering-3d-graphics
Last synced: 4 months ago
JSON representation
Low-level rendering framework in python
- Host: GitHub
- URL: https://github.com/nojoule/joulegl
- Owner: nojoule
- License: mit
- Created: 2024-09-09T19:45:26.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-09-17T20:13:57.000Z (5 months ago)
- Last Synced: 2024-09-25T21:36:34.397Z (5 months ago)
- Topics: glsl, opengl, python, rendering-3d-graphics
- Language: Python
- Homepage:
- Size: 344 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# JouleGL
Low level rendering framework using OpenGL python bindings. For feedback or questions, feel free to join my stream and community at https://www.twitch.tv/nojoule .## Test Coverage
Coverage Report FileStmtsMissCoverMissingjoulegl/opengl_helper buffer.py166199%104 frame_buffer.py330100% screenshot.py29673%27–>29, 38–40, 58–61 texture.py46971%37–38, 46–47, 60–62, 65, 74 vertex_data_handler.py650100% joulegl/opengl_helper/base data_set.py410100% shader.py680100% shader_handler.py180100% shader_parser.py520100% joulegl/opengl_helper/compute shader.py360100% shader_handler.py150100% joulegl/opengl_helper/render shader.py250100% shader_handler.py210100% utility.py75883%126–131, 138, 143, 146, 154–155joulegl/processing processor.py90100% joulegl/rendering renderer.py340100% joulegl/utility app.py57297%85–86 camera.py1421490%141–155, 222–225 definitions.py140100% file.py720100% glcontext.py140100% log_handling.py150100% performance.py542159%13–38, 54–55, 62–66, 71–>75 singleton.py100100% window.py1738540%18, 23–26, 35, 39–41, 56, 105–106, 114–116, 119, 122–133, 136–142, 145–148, 151–158, 161–189, 203–209, 217, 230, 232, 236, 243, 249–252, 255–258, 266–>268 window_config.py150100% TOTAL129914686%
## Installation
Install using pip:
```Shell
pip install -r requirements.txt
```## Usage
Clone this repo and look in the [demo](./demo) folder for examples.
### Demo: Balls
Showing compute shader applying noise to vertex positions with dynamic use of two different shader for basic triangles or more complex geometry shader.```Shell
python demo/balls/balls.py
```![balls, triangle connections between random positions](./docs/balls_demo.png)
![balls, random positions rendered as spheres](./docs/balls_demo_2.png)### Demo: Block
Showcasing dynamic shader generation.```Shell
python demo/block/block.py
```![block, positions rendered as cubes, with varying color and shading](./docs/block_demo.png)