Skip to main content

Low level rendering framework using OpenGL python bindings.

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

joulegl-1.0.0.tar.gz (24.7 kB view details)

Uploaded Source

Built Distribution

joulegl-1.0.0-py3-none-any.whl (32.5 kB view details)

Uploaded Python 3

File details

Details for the file joulegl-1.0.0.tar.gz.

File metadata

  • Download URL: joulegl-1.0.0.tar.gz
  • Upload date:
  • Size: 24.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for joulegl-1.0.0.tar.gz
Algorithm Hash digest
SHA256 2e790380f855034583671a8840db013d08fee11fc628287a78a1fe3c387c103e
MD5 a2c4636b8b1bc95782f47463bc9a80ce
BLAKE2b-256 58b68be8f617f510566f40067d036738cdc9e2508d105326500c9992b0d2c905

See more details on using hashes here.

File details

Details for the file joulegl-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: joulegl-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 32.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for joulegl-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 06b3ca52ec31cba517c394af9a362b625c91febb87449107b34a2992aad84667
MD5 c7aafbf1918dee4915e04e3fc08c97d7
BLAKE2b-256 2b8144db654b71505618db8e753bf1f6c51c3614397489fa5c6d9e4af034c518

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page