Skip to main content

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

Coverage Report
FileStmtsMissCoverMissing
joulegl/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–155
joulegl/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:

pip install -r requirements.txt

Usage

Clone this repo and look in the 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.

python demo/balls/balls.py

balls, triangle connections between random positions balls, random positions rendered as spheres

Demo: Block

Showcasing dynamic shader generation.

python demo/block/block.py

block, positions rendered as cubes, with varying color and shading

Metadata

Release files for joulegl 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for joulegl 1.0.0
File Size Uploaded
joulegl-1.0.0.tar.gz 24.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for joulegl 1.0.0
File Interpreter ABI Platform
joulegl-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 57.3 kB

Release files / joulegl-1.0.0.tar.gz

Download URL joulegl-1.0.0.tar.gz
Size 24.7 kB
Tags Source
SHA-256 checksum
How to use checksums
2e790380f855034583671a8840db013d08fee11fc628287a78a1fe3c387c103e
BLAKE2b-256 checksum
How to use checksums
58b68be8f617f510566f40067d036738cdc9e2508d105326500c9992b0d2c905
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.1.1 CPython/3.12.6

Release files / joulegl-1.0.0-py3-none-any.whl

Download URL joulegl-1.0.0-py3-none-any.whl
Size 32.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
06b3ca52ec31cba517c394af9a362b625c91febb87449107b34a2992aad84667
BLAKE2b-256 checksum
How to use checksums
2b8144db654b71505618db8e753bf1f6c51c3614397489fa5c6d9e4af034c518
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.1.1 CPython/3.12.6

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page