HLSL/GLSL/Slang library for debugging shaders
See the codeThis tool helps you with shader writing and debugging. It's meant to be used for small specific use cases (printing or drawing a few number, 2D or 3D elements) as it was optimized for ease of integration (~ one file, few lines of code). It is not targeting complex UI or minimal performance impact.
If you want to get a introduction, check out the GPC 2026 video. You also can browse the interactive documentation. Check out more samples in Gigi (Search in GigiBrowser for "Human") and you will see how rapid prototyping in shaders becomes straightforward. Use PrintF debugging, draw a watch window in the viewport or use 2d and 3d shapes with ease. No C++ code changes, no buffer setup or content setup required.
The permissive license makes it free for commercial use.
S2H Features in Gigi:
S2H used to render Gaussian Splatting with a stochastic rasterizer (input .ply was procedurally generated):

S2H used to implement interactive pannig, zooming and debugging pixel colors:

This is only needed for development on the library. Windows only.
The source code is released under an open license as detailed in License.txt.
'include' S2H core include files in HLSL (all you need for hlsl or glsl with preprocessor)
'docs/include' S2H core include files in HLSL (all you need for glsl without preprocessor)
'examples' S2H core examples to be run with Gigi
'unittests' Gigi technique and shaders to verify function, run python from Gigi DX12 Viewer.
'docs_src' S2H examples for the web documenation, source for transpileToGLSL.bat
'README.md' this file, github/gitlab start page
'teaser.png' used for README.md and Gigi technique browser
'transpileToGLSL.bat' to converts hlsl code to glsl, needed for server or if you want to use glsl directly
'startLocalServer.bat' to locally browse and iterate on the documentation
'server.js', 'utils', 'docs' HTML documentation, needed to locally browse the documentation
'node_modules' generated by node.js, to browse the documentation locally
Functional, Open Source
Smaller task with the size in days (d) or hours (h) for a some programmer (the value does not matter but ratio between tasks should be about right).
Before you can contribute, EA must have a Contributor License Agreement (CLA) on file that has been signed by each contributor. You can sign here: http://bit.ly/electronic-arts-cla
Any contribution - large or small - is much appreciated and earns you a spot on the contributors list. Just add your name to the list (alpha sorted) as part of your pull request!
As far as coding standards, we need to write them up and automate them as much as we can, but for now, try to make your code look like other code.
With each pull request, besides testing any functionality you are touching, please also verify that all .gg files in Gigi and that the the Python unit test are still passing, consider adding unit tests if appropriate. Run transpileToGLSL.bat as it generates .hlsl and .glsl files derived from input .hlsl files, those are used by the WebGL documentation. Cycle through the affected documentation pages.
To run the viewer unit tests, from inside the viewer select File->Run Python Script and choose unittests/GigiTest.py. It should report that it has zero errors.
HLSL
93.5%
Batchfile
3.5%
Python
1.9%
JavaScript
1.1%
HLSL/GLSL/Slang library for debugging shaders
See the codeThis tool helps you with shader writing and debugging. It's meant to be used for small specific use cases (printing or drawing a few number, 2D or 3D elements) as it was optimized for ease of integration (~ one file, few lines of code). It is not targeting complex UI or minimal performance impact.
If you want to get a introduction, check out the GPC 2026 video. You also can browse the interactive documentation. Check out more samples in Gigi (Search in GigiBrowser for "Human") and you will see how rapid prototyping in shaders becomes straightforward. Use PrintF debugging, draw a watch window in the viewport or use 2d and 3d shapes with ease. No C++ code changes, no buffer setup or content setup required.
The permissive license makes it free for commercial use.
S2H Features in Gigi:
S2H used to render Gaussian Splatting with a stochastic rasterizer (input .ply was procedurally generated):

S2H used to implement interactive pannig, zooming and debugging pixel colors:

This is only needed for development on the library. Windows only.
The source code is released under an open license as detailed in License.txt.
'include' S2H core include files in HLSL (all you need for hlsl or glsl with preprocessor)
'docs/include' S2H core include files in HLSL (all you need for glsl without preprocessor)
'examples' S2H core examples to be run with Gigi
'unittests' Gigi technique and shaders to verify function, run python from Gigi DX12 Viewer.
'docs_src' S2H examples for the web documenation, source for transpileToGLSL.bat
'README.md' this file, github/gitlab start page
'teaser.png' used for README.md and Gigi technique browser
'transpileToGLSL.bat' to converts hlsl code to glsl, needed for server or if you want to use glsl directly
'startLocalServer.bat' to locally browse and iterate on the documentation
'server.js', 'utils', 'docs' HTML documentation, needed to locally browse the documentation
'node_modules' generated by node.js, to browse the documentation locally
Functional, Open Source
Smaller task with the size in days (d) or hours (h) for a some programmer (the value does not matter but ratio between tasks should be about right).
Before you can contribute, EA must have a Contributor License Agreement (CLA) on file that has been signed by each contributor. You can sign here: http://bit.ly/electronic-arts-cla
Any contribution - large or small - is much appreciated and earns you a spot on the contributors list. Just add your name to the list (alpha sorted) as part of your pull request!
As far as coding standards, we need to write them up and automate them as much as we can, but for now, try to make your code look like other code.
With each pull request, besides testing any functionality you are touching, please also verify that all .gg files in Gigi and that the the Python unit test are still passing, consider adding unit tests if appropriate. Run transpileToGLSL.bat as it generates .hlsl and .glsl files derived from input .hlsl files, those are used by the WebGL documentation. Cycle through the affected documentation pages.
To run the viewer unit tests, from inside the viewer select File->Run Python Script and choose unittests/GigiTest.py. It should report that it has zero errors.
HLSL
93.5%
Batchfile
3.5%
Python
1.9%
JavaScript
1.1%