
Normally I never post pages that are so incomplete, but I don't think I'm going to finish it for a long long time, so I'm making an exception.
Updated: January 13th 2010
Overview and features
Shaide is a GLSL shader development environment written for Linux. It is an
attempt to mix the best of existing commercial software into one package. The
GLSL shader development environments for Linux are more limited than the
shader IDEs that run on Windows. Shaide tries to be different by giving the
developer the option to choose which parts of the shader are written in the
traditional line by line method of coding, and which parts are written using a
visual programming language. The visual programming language is made up of
lines and nodes. Nodes can be thought of as functions, with inputs and
outputs, and the data from each node is passed to the next via lines drawn to
the screen. This visual programming idea isn't new, but the fact that this
environment mixes the two methodologies makes it new for shading languages. (As far as I know). Shaide is artist friendly because it provides
the usual sliders that artists can move and get immediate results. Shaide is
also programmer friendly because it lets programmers write chunks of shaders,
putting them into nodes, then quickly swapping nodes in and out of shaders and
seeing the effects in real time. Nodes can also be exported, shared and
reused. The GLSL language is a minimal C-like language that is so simple that
it can be represented efficiently with lines and nodes. If all
the lines of a shader were nodes then the shader graph would be very
complicated, especially with loops and conditionals. The idea is to group
related code into useful blocks that can be quickly combined to prototype
shaders without the need to write any code other than GLSL.
Here is an example of a node (someNode) with three inputs with different types
connected to the output of a vertex shader (the green dot, aka
gl_Position).

Online shader data base
One sub-goal of this project is to create a free online repository of Shaide
projects that other people can import directly onto their computers and
edit, all from the Shaide environment. This includes all models and textures,
not just glsl graphs and code.
Project status
Node and graph editing: 75%
Mostly done, need to make things prettier.
Shader source code generation and parsing: 95%
Works, there are some minor bugs for corner cases. All this means is that
shaide can't pickout the node with the syntax error sometimes.
2D textures: 95%
Loads all popular formats, but I need to expose the loading function to python
scripts for plugins.
Multiple passes: 50%
Code is there, haven't gotten to a point where it makes sense to debug
it. I'm just assuming there are bugs in it.
OpenGL viewport: 50%
Renders models, textures, multiple passes. Need to add things like the ability
to place objects in the scene with the mouse.
Offscreen rendering: 0%
Top priority.
Geometry shaders: 0%
I don't even have the hardware for this.
Saving/loading: 0%
Going to use XML export from boost serialization.
FreeGLUT exporting: 0%
This isn't going to happen for a long time, but someday it would be nice to
export a shader to a .c file that can be compiled to display the shader in a
stand alone program.
Online shader repository: 0%
Model loading: 75%
This is done completely in python plugins. It works, but I need to add a way for
plugins to define custom names for extra model data, basically vertex
attributes.
Shadow maps, cube maps, 3d textures, 1d textures: 0%
Handling all these lesser used OpenGL extensions is going to be the bulk of
the work in the long run.
Stability: Stable
I'm very happy with how little this software crashes or does something
unexpected. Even under heavy development segfaults are very rare, and random
behavior doesn't happen to anything unrelated to what I'm currently coding.
There could be more in this list. (Both done and not done) These are just the
main ones.
Code
I moved this project into GPL space.
https://sourceforge.net/projects/thenormalizer/