Home

Programming tutorials & development musings

Welcome to Swiftless Tutorials. Somehow this site has now been on the internet for the better part of 20 years, which is equal parts cool and mildly terrifying.

Explore the tutorials

  • OpenGL 2.x

    The classic pipeline

    Windows, cameras, lighting and textures with fixed-function OpenGL.

  • OpenGL 4.x

    Shaders & buffers

    Create a window, load shaders and draw with VAOs, VBOs and matrices.

  • GLSL

    Write your own shaders

    Learn how vertex and fragment shaders change what appears on screen.

  • Terrain

    Build a landscape

    Heightmaps, terrain generation and rendering with legacy OpenGL.

  • Maths

    Behind the graphics

    The supporting maths, from transformations to useful graphics concepts.

  • PhysX

    A little physics

    Set up scenes, collisions and materials with AGEIA PhysX 2.7.

  • WebGL

    Graphics in the browser

    A small introduction to bringing OpenGL-style rendering to the web.

  • Other tutorials

    A few more things

    Extra programming and graphics tutorials from around the site.

Swiftless started as a place for me to write down the programming and computer graphics things I was learning, usually because I had just spent far too long figuring something out and thought somebody else might appreciate not having to do the same thing. That part has not really changed.

What am I doing these days?

I am a Senior Software Developer in Adelaide, currently working at RDI Partners on AI agents, automation and web systems. My day-to-day work is a long way from the spinning OpenGL cubes that originally filled this site, but the thing I enjoy has stayed pretty consistent: understanding how something works, getting rid of unnecessary manual work and building software that makes somebody’s day easier.

Most of my recent development work has been around .NET, Blazor, Azure, SQL, APIs and web applications. In 2023 I also gave my first ever presentation at ADNUG (Adelaide .NET User Group), talking about moving an online retail platform to Blazor. I went way over time, naturally:

Legacy OpenGL in C#? Apparently, yes.

I have also been getting the original OpenGL tutorials running in .NET. There are wrappers for OpenGL, of course, but finding examples of the old fixed-function pipeline from C# was surprisingly painful. So after the usual amount of trial, error and wondering why I was doing this to myself, I put the working examples on GitHub:

Swiftless OpenGL Legacy C# examples on GitHub

Have a look around, break something, figure out why it broke, and hopefully learn something useful along the way.

Good luck coding!
Swiftless