Graham Pullan

16 Followers
50 Following
18 Posts
Engineering Professor at University of Cambridge
webhttps://whittle.eng.cam.ac.uk/lab/team/graham-pullan/

I wrote a little post about overlapping WebGL elements.

https://grahampullan.github.io/viz/2025/02/02/Overlapping-webgl-elements.html

Multiple overlapping threejs webgl elements

The problem with multiple WebGL contexts In web-based data visualisation applications, a common UX design is to have multiple cards (each card is a html <div> element) each containing a graphical representation of a different aspect of the data. If the plot is a view of a 3D surface, or involves thousands of data points, it is natural to use WebGL. This is most easily achieved by adding a <canvas> element as a child of the card <div> and making this a WebGL context. Unfortunately, browsers limit the number of available WebGL contexts (a limit of 16 is common), so, if you want more cards than that, another strategy is required.

gp10006

I'm working on an interactive tool for prototyping energy systems.

You can have a go here:

https://grahampullan.github.io/viz/2024/09/22/Visual-energy-modeller.html

Interactive visual modelling for energy systems

Even small systems, comprised of simple components, can be hard to reason about. I’m interested in interactive visualisation tools that can help us to understand the behaviour of such systems. This post shows the current status of a prototyping tool that I am working on.

gp10006

I really enjoyed lecturing Vector Calculus to the second year Engineers again this year. I use interactive demos (@observablehq notebooks) to bring the great theorems of Gauss and Stokes to life! I thought this technique might be useful to others so I wrote about it here:

https://grahampullan.github.io/viz/2023/02/09/Gauss-and-Stokes.html

Visualising vector calculus

I teach vector calculus to the second year undergraduate engineering students here in Cambridge. There are over 300 students in the class so one way I have tried to more deeply connect those attending with a subject that I find both fascinating and elegant is by using interactive demonstrations. Using Observable I can write notebooks in JavaScript that students can immediately access on the phones. Not only does it break up the lecture, but it also creates a tactile, responsive connection between the course material and the students. I’ve done this for a few years now and the feedback from students has been really positive - most just enjoy playing with vector calculus but they can also, if they wish, edit and adapt the code themselves.

gp10006