After a bit of work during the weekend, an early version of AGALtheMEaN is available here. It should be a handy tool for those wanting to learn AGAL. It allows you to experiment on realtime with AGAL shaders.
A little explanation about how to use it:
- File -> New Shader: Choose a sample shader.
- Help: Useful AGAL info.
- Shaders Panel: Write AGAL code here and see it recompile in real time.
- Log: If something is wrong with your shader, it will be reported here.
- Constants Panel: Add/edit your shader constants here.
- Attributes Panel: Determine what vertex attributes your shader uses.
- Samplers Panel: Set up textures/images for your shader here.
- Model: Change the used model or its transformation here.
Edit: The sources are now available on GitHub. This is in case anyone wants to help… If you do look at the source, sorry for the mess, I don’t have the luxury to spend enough time on this on a way that it’s tidy
Something that I would like help on (and think would be pretty cool) is the ability to save your shaders on an online database, that way we can start sharing shaders with this app.
Edit 2: v0.5 is up with a few improvements, the main one being the ability to use mip mapping.

hey,
thank you very much for this!
this will help lots of people (like me) who struggle with AGAL.
and yeah, the ability to save & share would be really neat.
AGALtheMEaN shall fall!
so…freakin…cool! As to the database idea- I’ve used AMFPHP to communicate with SQL. Check it out, works great and saves a ton of bandwidth since it serializes everything into bytecode for transfer
Glad you guys like it!! Yeah, that would be a good way to connect to a db, only I don’t have time to do this right now… perhaps I’ll find time soon. Anyway, it would be great if someone came in and gave a hand
This is an awesome tool! Thanks!
Hi amazing tool thanks for sharing it.
Although im struggling to apply the agal shader in my own code, what exactly is a reduced transform? and how to I access/produce it from the object parameter passed in by the collectDraws() func?
any help would be appreciated
GW
Hey =)
Yeah sorry, a “reduced transform” is sort of my own little thing. It is simply the transform of an object without considering its translation. If it was used to transform a vector, it would be equivalent to
vector = obj3d.transform.deltaTransformVector( vector );
vector = obj3d.reducedTransform.transformVector( vector );
Both are the same.
In the “reduced transform” translation entries x y z are zero.
Of course, using this is not the regular practice for writting shaders, simply something I ‘invented’ and got used to while learning this stuff.
hth