Profile avatar
mgmalheiros.bsky.social
Patterns. Simulation. Graphics. Compilers. Creative Coding. mgmalheiros.github.io PhD in Computer Science. Academic researcher at UEM. Also at https://mathstodon.xyz/@mgmalheiros
4 posts 358 followers 382 following
Prolific Poster

I taught my IB biology students about Semmelweis and John Snow this week. One cried "Why didn't they just believe them!?" I replied, "that's what they'll say about you in two hundred years: 'why did they keep buying bigger cars!?'" Which wiped the smile right off their face. #iTeachBio #SciTeachUK

The rendering equation is the fundamental recursive integral equation of light transport proposed by Kajiya in 1986, at the heart of (ray) path-tracing and particle tracing. Numerous sampling methods have been proposed to solve it numerically. buff.ly/4i5laYT

Font foundries with hassle-free licenses: www.alannamunro.com/licensing mass-driver.com/licensing www.arrowtype.com/licensing verycoolstudio.com/about lettermatic.com mbtype.com/fonts www.yeptype.com/eula

This excellent interactive tutorial on misleading data visualizations explores the idea of a "counter chart" — the graph you draw in response to refute a misleading claims flowingdata.com/projects/dis...

I think every designer should write a love letter to a font at least once in their lifetime. This is mine: A 150-year-old font you have likely never heard of, and one you probably saw earlier today. aresluna.org/the-hardest-...

MathArt #7: Chaos game fractal using Möbius transformations. Generated with #p5js Inspired by the work of @sconradi.bsky.social #GenerativeArt #Fractals #CreativeCoding #mathart

Welcome to JCGT-announce! We announce articles for the Journal of Computer Graphics Techniques here. If you prefer to get announcements sent to your email, sign up at jcgt.org/read.html

Every time quaternions comes up someone is like "WTF is with Quaternions?" so I wrote The Short Answer

Reminder that you can follow all these cool people working on #procgen terrains and maps, for free! And if your work involves any of that, and would like to be added to the list, let me know! #followfriday go.bsky.app/QGNVa2L

not that anyone asked but here's a phyllotaxis distribution of n points in the unit disk www.desmos.com/calculator/g...

The idea that generative AI could create games completely autonomously remains a distant dream, but we're beginning to see early signs of this potential. dev.to/abagames/cre...

One Line Landscape 🏔️ #Genuary Day 25 dwitter.net/d/33122 #javascript #tinycode #generativeart c.width|=s=(a,b,p)=>a-a*p+b*p l=_=>s(S(X^Y),S(X+1^Y),X%1) x.lineWidth=3 H=128 for(i=5120;Y=--i>>7;x.lineTo(384+X*9-Y*8+X*Y/8,H+Y*20+H*s(l(X=X/19+t*3,Y/=7),l(++Y),Y%1)))X=Y%2?i%H:H-i%H x.stroke()

Gigi 0.99.6 released! Introducing the Gigi Browser, which lets you search through a library of Gigi techniques, and you can submit your own as well. Also thanks to Patrick Anderson for making a "Plastic Shaded" view in the model viewer. More info in release notes: github.com/electronicar...

A few years ago I published an interactive visual explanation of MVP matrix transformations in #threejs vertex shaders. The original CodeSandbox project broke, so I moved it to a more stable home on GitHub Pages. mattrossman.github.io/mvp-visually...

New dithering method dropped I call it Surface-Stable Fractal Dithering and I've released it as open source along with this explainer video of how it works. Explainer video: www.youtube.com/watch?v=HPqG... Source repository: github.com/runevision/D... #gamedev #vfx

How many #SciComm starter packs are there? Let's make a big list! Here's one by @drjenndowd.bsky.social go.bsky.app/DV3dLBw

A starter pack on Self-Organisation & AI, as well as adjacent topics such as ALife, morphogenesis, and open-endedness. I will keep adding researchers as people join 🦋 go.bsky.app/3jNeAPY

Embryonic development and material properties of skin layers provide a simple evolutionary mechanism for the diversity of head-scale patterns in crocodilian species. #selforganization www.nature.com/articles/s41...

Does technology evolve as biology? In many ways, it does. Is it continuous or occurs in bursts? By analyzing the evolution of programming languages with @svalver.bsky.social, we found the answer. Wrok started at @sfiscience.bsky.social. royalsocietypublishing.org/doi/pdf/10.1...

A very special release time! The actual simulation now runs on the home page of www.thegrove3d.com - so you can now experience how it grows diverse trees like pine, ash and weeping willow. Shout-out to @bruno-simon.bsky.social for making this technical process super fun! #threejsJourney #threejs

Oh come ON now. This new JWST image is just ASTOUNDING. I feel like I’m falling looking into it, and that I would fall forever, and that I would enjoy it. NASA, ESA, CSA, K. McQuinn (STScI), J. DePasquale (STScI)

LLMs on topics where people do simple envisioning to reason. Language is great for manipulating a person's impression of intelligence. Useless for understanding the physical world or geometry, even the most minimal geometry of a prefect informations game, tic-tac-toe. mindmatters.ai/2025/01/agi-...

243 chars of #GLSL: vec2 p=(FC.xy-r*.5)/r.y*mat2(9,-2,2,9),v;for(float i;i++<50.;o+=(cos(sin(i)*vec4(7,4,2,1))+1.)*exp(sin(i*i+t))/length(max(v,vec2(v.x*(3.+snoise2D(p+vec2(t/.3,i)))/1e2,v.y*.21))))v=p+cos(i*i+t+p.x*.2+vec2(0,11))*3.;o=tanh(pow(o/3e2,vec4(1.5)));

The Laplacian operator can be expressed as the difference of a pair of smoothing operators. Here’s a canonical demonstration

Coders have such weird ideas about how to party: The 'Obfuscated C Code' Competition Returns

I wrote about anti-aliasing in shaders and how you can implement it! mini.gmshaders.com/p/antialiasing

NEW: 2024 has just been confirmed as the warmest year on record, and the first to breach the 1.5C threshold. We used a ridgeline (Joy Division inspired) chart to visualise daily temperature anomalies since 1940. 2024 clearly stands out with 100% of its days above 1.3C and 75% above 1.5C.

New blog post: Cellular Automata! As always, comments and questions are welcome. #gamedev #cellular-automata (This is an automated post.)

My open source library for projection mapping is officially released today, free for all to use. Built on the @processing.org creative coding framework, it’s based on years of SPACEFILLER projection mapping installations. shapemapper.dev

New Blog Post! Dice, (De)Convolution and Generating Functions I recently saw an awesome video about summing dice. I explain why the method they show works, from both a probability perspective, and a generating function perspective blog.demofox.org/2025/01/05/d...

𝗕𝗼𝗼𝗸𝘀 𝗼𝗳 𝟮𝟬𝟮𝟰 Some of the books I enjoyed reading this past year. Many great books but a remarkable one on How Life Works offers a beautiful view of biology by Philip Ball.

✍️ "Hard truths about AI-assisted coding" tips & tricks in my latest article: bit.ly/ai-assisted While AI-Assisted coding can get you 70% of the way there (great for prototypes or MVPs), the final 30% requires significant human intervention for quality and maintainability.

Kick off the new year with creative inspiration! 🎨 In this newsletter, I reflect on 2024 highlights, dive into my 2025 goals, favorite reads, and curated tutorials on WebGPU, particle simulations, and more. Let’s create together!

Any three (non colinear) points define a circle.

the five horsemen of the apocalypse

OK, I'm very excited by this. These are proofs of my book on science for children aged around 9-12, and they look glorious. As you may notice, it is appearing in Portuguese, because it was a Portuguese publisher who picked it up. Hoping for an English version too!

My advisor warned me that academics trend towards bitterness. He encouraged me to intentionally resist this, remember where I came from, and never forget the privilege of getting to spend a life working with knowledge and ideas. He too said that bitterness and resentment is easy.

CPU ⚡ www.dwitter.net/d/33027 #javascript #tinycode #generativeart B=t?[...A]:A=[D=new ImageData(c.width=w=480,w)] x.putImageData(D,0,0) for(k=3e5;k--;D.data[k*2+1]=t?A[k+F(n=(q=k%w>>5^(k/w>>5))+499*(t+q/9>>1)%4)+F(n+w)*w]=B[k]:A[k]=w*F(k))F=F=>S(F*F)>0?1:-1;

I often see developers make mistakes in their tutorials that trip up readers, so I thought a lot about what makes some tutorials effective and what makes others frustrating.

Love the take in this video that AI art is made by everybody and nobody at the same time. Really recommend to watch!

New year, new #quadplay open source fantasy console release! github.com/morgan3d/qua... Tons of new artist-facing features, including easy git, Krita, Photoshop, and Aseprite integration for the IDE. Most important: the pixel art dice library now includes translucent gem dice 💎😊

Pixel Pusher 🏗️ www.dwitter.net/d/33021 #javascript #tinycode #generativeart B=t?[...A]:A=[] E=(a,b)=>A[a+b]=B[b] for(c.width=w=256,k=4e4;k--;t?E((u[(n=i/32^(j>>5)*16)^(t+n/9)%4]?1:-1)+(u[n+w]>.5?w:-w),k):A[k]=u[k]=Math.random()>.5)x.fillRect(i=k%w,j=k>>8,1,B[k])

Bluesky builds #robots! 1. Go here: bit.ly/4gC8zw9 2. Post your bot to Bluesky. 3. Forward this post. 4. Search for #bsky_builds_bots to see what others have made.

Graphics Programming weekly - Issue 372 - December 29, 2024 www.jendrikillner.com/post/graphic...

2025 is … a perfect square 45 x 45 = 2025.   a sum of cubes: 1³ + 2³ + 3³ + ... + 9³ = 2025 a perfect square when you add 1 to each digit: 3136 = 56² a perfect square when you increase the first digit by 1: 3025 = 55² Maybe the only number with all these properties

Our new paper! "Analytic theory of creativity in convolutional diffusion models" lead expertly by @masonkamb.bsky.social arxiv.org/abs/2412.20292 Our closed-form theory needs no training, is mechanistically interpretable & accurately predicts diffusion model outputs with high median r^2~0.9

here, have a coordinate system chart~

What are the limits to engineering multicellular systems? Can we invent new organs or synthetic behaviour? We discuss these and other ideas in our latest paper with @jordiplam.bsky.social @jgojalvo.bsky.social @drmichaellevin.bsky.social & cols www.nature.com/articles/s41...

I wrote a GRAPHICS BLOG POST about how to MAKE TERRAIN out of SPLINES and SIMPLE MATH in Blender with Geometry Nodes! This technique is very powerful and easy to implement and there's lots of interesting ways to extend it. zone.dog/braindump/sp...