New article: "Isotropic Neural Cellular Automata", a review of our previous work on making NCAs rotation and reflection equivariant
@RandazzoEttore
@eyvindn
@cwpfautz
No, I will not think about using RegEx to convert JS into WebGPU WGSL shaders.
No, I will not try to write such RegExp.
No, I will never use this method to write an actual shader.
Oh no, what I've done.
#webgpu
#wgsl
#js
New Neural CA article "Self-Organising Textures" is live on
@distillpub
!!! From
@eyvindn
,
@drmichaellevin
,
@RandazzoEttore
and me. Remember Hexells and all those living textures I've been posting lately? That's how we do it, and you can now too!
What I've done? Row-column sorted pairwise distance matrix as a rotation-reflection invariant point cloud description. Using optimisation to reconstruct shape from matrix. Is this a well known thing? (code below)
@gabrielpeyre
I often complain about NumPy-ish frameworks (TF, jax, torch) being inefficient for anything less conventional. Here is a benchmark of today, 10k iters of Physarum: TF - 11.9 s, Taichi - 240ms. Taichi is 40-50x times faster and the code is more readable.
Started working on mipmap support in SwissGL, which allowed to greatly simplify the DotCamera demo. So, I decided to fix the camera aspect and add the "dayMode" (available under the gear button)
Last week I gave a lecture on differentiable programming for which I implemented a toy version of TF/PyTorch on top of NumPy. It took ~150 loc and was a very fun exercise. I think I'll call it TensorToy. Anyone's interested?
Imagine a group of agents on a plane, arranged in a shape of a digit. Can they figure out what digit they make by talking to their neighbors only? Check out our new paper from the Differentiable Self-Organisation series!
SwissGL Demo: Particle Lenia with alien SOUNDS!
Audio is fully rendered on GPU with GLSL shaders and streamed to WebAudio thanks to the new async GPU->CPU read feature.
LIVE DEMO: Press "toggleAudio" in settings for sound
4K YouTube version:…
"Controlling Neural CA with noise" -- new tutorial where I'm trying to document the exploration precess (idea -> experiment -> early results). I'd really appreciate your feedback!
The main reason I love graphics programming is because it allows to show pictures I have in my head to everyone (). Particle Lenia fields: U (heightmap), G (color)
I've posted my first "life-coding" tutorial () that shows how to implement a simple model of 2d vector alignment on a grid! Looking forward to your feedback!
(Neural CA tutorials will follow later)
My toy implementation of the "Implicit Geometric Regularization for Learning Shapes" by Amos Gropp et al. Fitting SDF to a set of points WITHOUT normals by implicitly solving Eikonal equation is MAGIC!
Digital collectables are all the rage now. What about collecting GitHub repos? Look at this beauty I've made, you may own it one day, with GitHub-redirect based authenticity proof! No blockchain involved ;) Digital ownership becomes digital responsibility!
I see a lot of developments in Optimal Transport these days. What about Optimal Transport Paths, assuming that moving things together is cheaper? The most comprehensive page I've found is 10-20 years old!
@gabrielpeyre
Feel like your hands are tied when using DL frameworks? Want low-level control on data layout and access, but still need backprop? Don't want to leave cosy Colab-kernel? Try Taichi on
@GoogleColab
!!! (brought to you by ~10 hours of staring at GDB)
It's always nice to have a compact and efficient boilerplate as a base for new experiments. I've updated the PyTorch Texture NCA code with the improvements from my latest video tutorial
I'm finally releasing 'deepdream.c' source on GitHub ()! Inception-V1 classification, adversarial examples and
#DeepDream
, all in ~900 lines of C89 code.
Big thanx to
@KanonDotArt
for inspiring and supporting this project!
New to video tutorial: Neural CA "Grafting". I show how to combine multiple CA rules on the same grid (top), and how to use fine-tuning to make CA "realtives" that can collaborate across the boundary area (bottom)!
On the importance of Gamma Correction for motion blur in visualisation. Moving particles look darker than static if you don't do "img **= 1/2.2" before writing the frame.
Zooming into lives of individual cells is something I particularly enjoy, although it doesn't seem to tell much about what's going on. All cells are rendered with a single quad using tricks from
@Shadertoy
llama.cpp is a triumph of minimalism, that reminds us how useful it is to throw away the crust and start from the blank canvas. First dependencies serve you, then they slow you.
Watching llama.cpp do 40 tok/s inference of the 7B model on my M2 Max, with 0% CPU usage, and using all 38 GPU cores.
Congratulations
@ggerganov
! This is a triumph.