mmm​.s‑ol.nu

cool things with mostly code

(procedural) graphics with math and shaders

This is a workshop i am currently preparing. If you are interested in having this workshop be held at your institution, please contact me!

topics

In this workshop I will cover the principles and tricks behind procedural graphics and animations like the following examples:

couldn't embed Fileder:/projects/demoloops/twisted
./mmm/mmmfs/conversion.moon:226: error while converting Fileder:/projects/demoloops/twisted text/moonscript -> mmm/component from 'text/moonscript -> mmm/component' to 'mmm/component':
[string "Fileder:/projects/demoloops/twisted#text/moon..."]:1: [nossr]
stack traceback:
	[C]: in function 'assert'
	[string "Fileder:/projects/demoloops/twisted#text/moon..."]:1: in main chunk
	(...tail calls...)
	[C]: in function 'xpcall'
	./mmm/mmmfs/conversion.moon:222: in function 'mmm.mmmfs.conversion.apply_conversions'
	./mmm/mmmfs/fileder.moon:238: in method 'get'
	./mmm/mmmfs/fileder.moon:244: in function <./mmm/mmmfs/fileder.moon:242>
	[C]: in function 'pcall'
	./mmm/mmmfs/util.moon:133: in function <./mmm/mmmfs/util.moon:119>
	(...tail calls...)
	./mmm/mmmfs/plugins/init.moon:65: in function 'string.yieldable_gsub'
	./mmm/mmmfs/plugins/init.moon:138: in function <./mmm/mmmfs/plugins/init.moon:116>
	[C]: in function 'xpcall'
	./mmm/mmmfs/conversion.moon:222: in function 'mmm.mmmfs.conversion.apply_conversions'
	./mmm/mmmfs/fileder.moon:238: in method 'get'
	build/server.moon:135: in function 
	[C]: in function 'xpcall'
	build/server.moon:199: in function 
	(...tail calls...)
	[C]: in function 'pcall'
	/usr/local/share/lua/5.3/http/server.lua:187: in function 

I plan to introduce the participants to the following topics:

  • what are procedural graphics?
  • what are shaders?
  • drawing a circle (with math)
  • transforming space
    • moving, scaling, rotating
    • mirroring, repeating, fractals
    • bending space
  • procedural animation
    • tweaking motion
    • easing functions
  • signed distance fields and raymarching
  • basic lighting

The exact topics and structure can be adjusted based on the course runtime and level of the participants' experience.