hardmaru
blog.otoro.net · Personal blog · on HN since 2015
David Ha (hardmaru) writes visual, interactive explanations of neural networks, evolution strategies, and neuroevolution, with demos like slime volleyball.
What HN saysCommenters praise the work as excellent and graphical, pointing to the slime volleyball and evolution strategies posts; the author calls it educational rather than cutting edge.
35HN people shared it
13linked it in comments
42stories submitted
1.2Kstory points
2 years agolast shared
2015people per year2026
Most-shared posts
- 1A Visual Guide to Evolution Strategies5 people · 267 points · first shared 2017 · 21 comments on HN
- 2Recurrent neural network playing slime volleyball. Can you beat them?5 people · 4 points · first shared 2015 · 1 comments on HN
- 3Hyper Networks: An RNN that changes the weights of an RNN4 people · 149 points · first shared 2016 · 16 comments on HN
- 4Show HN: Neural Network Evolution Playground with Backprop NEAT4 people · 88 points · first shared 2016 · 7 comments on HN
- 5Evolving Stable Strategies4 people · 34 points · first shared 2017 · 1 comments on HN
- 6Collective Intelligence for Deep Learning: A Survey of Recent Developments4 people · 8 points · first shared 2022 · discussion on HN
- 7Handwriting Generation Demo in TensorFlow4 people · 3 points · first shared 2015 · discussion on HN
- 8Creatures avoiding planks3 people · 186 points · first shared 2015 · 22 comments on HN
- 9Recurrent Neural Network Tutorial for Artists (2017)3 people · 149 points · first shared 2017 · 8 comments on HN
- 10Recurrent Net Dreams Up Fake Chinese Characters in Vector Format with TensorFlow3 people · 124 points · first shared 2015 · 48 comments on HN
- 11Generating Large Images from Latent Vectors – Part Two2 people · 19 points · first shared 2016 · 5 comments on HN
- 12Show HN: Neurogram – Creating art by evolving neural networks in Javascript2 people · 7 points · first shared 2015 · discussion on HN
- 13World Models Experiments2 people · 2 points · first shared 2018 · discussion on HN
- 14Slime rnn.png2 people · first shared 2015
- 15Permutation-Invariant Neural Networks for Reinforcement Learning1 people · 109 points · first shared 2021 · 16 comments on HN
What HN people wrote when they linked it
cinjon · 2017-01-06
Here's a great blog from one of the residents - http://blog.otoro.net/
It's like any other (research) endeavor with lots of people involved. Some of us share research interests and so we coalesce around efforts towards accomplishing those goals. Out of the resident pool, I am currently working with Ryan and have had some discussions about collaborations with Denny and Justin.
Take a look at the published papers though and you can see some pairs that have flourished by working in the same vicinity.
This is a wonderful part of the program though, and it doesn't stop with the Residents. Brain is such a great place for ideas to meld and for people to come together to collaborate; it's designed to encourage that.
alook · 2025-04-02
I love this work by Otoro / David Ha.
For come context, this uses a technique called CPPN’s (compositional pattern producing networks), where the inputs are (x, y, sqrt(x^2 + y^2)) and then there are several neural net layers with different activation functions and randomly initialized weights. It actually resembles the optical physics of light reflecting through glass (which explains why it sometimes looks like light reflecting through a gem).
Otoro wrote some great blog posts on this:
https://blog.otoro.net/2016/03/25/generating-abstract-patterns-with-te…
https://blog.otoro.net/2015/07/31/neurogram/
https://github.com/hardmaru/cppn-tensorflow
deepnet · 2016-11-12
Otoro has an excellent page graphically explaining the neuroevolution of an opponent for Slime Volleyball.
http://blog.otoro.net/2015/03/28/neural-slime-volleyball/
hardmaru · 2015-05-12
haha, I like that.
Yeah, there are a total of 140 weights/biases in the neural network. This stuff is not bleeding edge - just taking techniques popular in academia and industry many years ago to make a fun game mainly for my own educational purpose. Basically recently I saw a lot of work on AI's playing ATARI games and wanted to learn reinforcement learning techniques, and the best way to learn is to build a game!
I put up a description of this sketch here:
http://blog.otoro.net/2015/03/28/neural-slime-volleyball/
Basically, the agent's brain consists of 7 neurons (compared to 250k for an ant), which are connected to all the inputs. The inputs are the game states, like locations of agents and ball, and velocities. Each neuron is also connected to each other.
The first 3 neurons control the neuron's output (it's motor function), like whether it hits the up, forward, or back button - the same function that a human game player can do.
The other 4 neurons are hidden neurons responsible for any deeper computation or thought, and are fed back into the input with a time lag.
I also graphed a slice of the neural network in real time on the screen just for effect. More for design effect if anything.
erwincoumans · 2022-06-09
Black box optimization such as CMA-ES or Augmented Random Search (ars) are used by researchers, for example:
CMA-ES:
https://blog.otoro.net/2017/10/29/visual-evolution-strategies
ARS:
https://arxiv.org/abs/1803.07055
Those optimizers are efficient up to certain neural network sizes.
wei_jok · 2017-10-30
For those new to the subject, here is a nice visual primer to Evolution Strategies.
http://blog.otoro.net/2017/10/29/visual-evolution-strategies/
malux85 · 2017-01-10
Topology generation is the new feature engineering, it's not surprising that it's the first thing to go. I have been working on advancing HyperNEAT for this very purpose - similar, but not quite the same to: http://blog.otoro.net/2016/05/07/backprop-neat/
Non-sequential and non-hierarchical topologies are the future, and it makes sense that machines should generate them
ericjang · 2017-01-03
another one: Hyper-Networks https://arxiv.org/abs/1609.09106
and a blog post to go with it: http://blog.otoro.net/2016/09/28/hyper-networks/
escap · 2016-12-06
Not exactly what you want, but
"Recurrent Net Dreams Up Fake Chinese Characters in Vector Format with TensorFlow" - http://blog.otoro.net/2015/12/28/recurrent-net-dreams-up-fake-chinese-…
previous discussion - https://news.ycombinator.com/item?id=10801712
shancarter · 2016-12-06
This post has more details about the model: http://blog.otoro.net/2015/12/12/handwriting-generation-demo-in-tensor…
hliyan · 2015-06-08
The link to the article could have been a little more prominent: http://blog.otoro.net/2015/05/07/creatures-avoiding-planks/
fpgaminer · 2015-05-12
His blog post describes how it was created: http://blog.otoro.net/2015/03/28/neural-slime-volleyball/
juliangregorian · 2015-05-12
It's just an abbreviated form of the nets shown in this (http://blog.otoro.net/wp-content/uploads/sites/2/2015/03/slime_rnn.png… image, the 3 outputs displayed correspond to the "forward", "jump", and "back" on the diagram, and the 8 inputs correspond to the agents' and balls' position vectors (which you can see in the Brain() code in slimevolley_pro.js).