Join the discussion

Write your take first — we'll ask for email only when you're ready to publish.

  • Hacker News
  • Fascinating. A glimpse into the mathematics of life and living tissue. A toy example like this might herald self-healing machines, in the same way that the first perceptrons heralded Fable and nude deepfakes.
  • You can make the centipede grow longer, which makes sense given how this works. Or grow a 2nd centipede for extra points.
  • haha yes, also the same with the worm
  • incredible work! I love seeing progress in this field. I've recently built a WebGPU implementation of the original growing neural CAs: https://github.com/IvanLudvig/neural-ca-webgpu
  • For the unfamiliar, could someone explain what I'm looking at? The abstract was a little too concrete (heh) for me to follow.
  • The original NCA is probably a helpful intro: https://distill.pub/2020/growing-ca/
  • If you're familiar with CAs (e.g. Conway's Game of Life), you can think of a NeuralCA as a CA where the update rule is given by a neural network. Here we optimize the neural net weights so that it behaves a certain way (e.g. grow a lizard from a single seed).
  • Really interesting demo, nicely done :) Would be fun if switching the "Target Image" when using the second brush mode in the Growing Demo didn't erase/reset the existing canvas, so we could "stamp" new things on top of other images. Small thing perhaps but I got sad when it disappeared when I wanted to merge a kitten on top of the chameleon but couldn't :(
  • You can, just enable the 'transition' switch.
  • That's not possible in the current demo but this sounds like an interesting feature to work on and add!
  • @esychology this is phenomenal work, thank you so much for sharing it. I am working in a similar thing and might reach out about it soon.

    Also, what's going on? Why would the community flag and kill this comment[1], from the creator itself. If you're jealous of what the guy built, take it elsewhere. HN will implode with that attitude.

    1: https://news.ycombinator.com/item?id=48571171

  • Thank you for the kind comment! Please reach out, I'm happy to have a chat.
  • It's the stupid spam filter going haywire: https://news.ycombinator.com/item?id=48321198
  • That's really impressive i've been thinking that we have using technologies cause they were a breakthrough but we actual resources we can implement technollogy that was relegated time ago, like when implementing 3d there were many other until the one who was more consistent is how we visualize 3d today. Cause this looks pretty simillar to metaballs. An idea that is not longer that hard pursued but i just saw the similarity.
  • The abstract implies that strictly local updates are a hinderance to high res, however i would have thought there would be an interesting way to get speed up gains from neighbor-only traffic on GPUs CAM-style. am i making that up?
  • I think performance is not the only issue for scaling to larger grids. CUDA Convolution implementation already utilizes coalescing to improve performance. The main bottleneck is that in larger grids, cells are further apart, and it takes more steps for them to be able to communicate.
  • I found your previous work here: https://distill.pub/2020/growing-ca/ For someone (like me) who wants to understand the basics its probably better. It's very well written.
  • I've always loved the original work and it's nice to see they're still working on it. I've always wondered if there was a way to connect this back to infrastructure rather than images. Something you could run on a cluster and if portions of it failed it would regenerate the system.

    Like a bio inspired Kubernettes.....Bionettes.

  • At a glance it looks like it could be just iterative texture sampling.

    The difference is when creating each pixel, there’s no coordinate to look up, instead it’s using only a set of rules like Conway’s game of life.

    But the rules come from a neural network trained on the image, so… it’s kind of memorizing enough information to effectively do the same thing as texture sampling, but using only local information.

    I’m sure I’m missing something about how it works or what makes it interesting…

  • Texture sampling retrieves pixels by coordinate, while NCA grows them from local rules with no global lookup. The weights are actually ~3× smaller than JPEG-compressed texture maps, so it's not just memorizing the image either. The more interesting part is that it's a dynamic process, you can damage the pattern while it forms and it repairs itself.
  • To me, it is intriguing as a toy model for how cells are able to grow into complex tissue and organisms based only on local information, and how they are able to repair and recover harmed tissue.

    Of course, this is as close to cells, as neurons from neural networks are to real neurons. And I have no idea what it could be applied to (inpainting/outpainting?), but it’s interesting as exploratory research.

  • The automata just completely destroys the image if I draw too much over the stabilized image with the brush. 5 horizontal swipes are enough to destroy the kitty, is that to be expected?

    EDIT: video here: https://imgur.com/a/ItZGd5X

  • With the old model (and I suspect this one too) it's trained to generate from a single 'seed' pixel in the center of the image. If you erase the center of the image, that's when it completely collapses.
  • The NeuralCA both generates and maintains the pattern. Because the NCA was not exposed to damage or erasure during training, its regeneration capability is a purely emergent phenomenon. However, this ability remains somewhat brittle, particularly when the central regions of the pattern are erased.