HNHacker News
TopNewBestAskShowJobs

danwills

561 karma · joined February 17, 2011

G'day! Dan Wills 'ere! I'm a full-time Houdini VFX Pipeline TD and Teacher (at RSP). I contribute a bit to a software called 'Ready', that enables explorations into 'reaction-diffusion'-type (ie field-based) simulations. Separately to work I've explored 2d fractals quite a lot, and dabbled with fractals and RD and other stuff in GLSL shaders (in an on-phone shader app) more recently.

I'm on YouTube as 'danwills' and there's the ol' UltraIterator blog below, and a flickr, which is probably the best view for my fractal images at present.

http://www.ultraiterator.blogspot.com/

https://www.flickr.com/photos/57934548@N02/albums

I'm always keen to chat about anything! I would love to turn some of these things into apps or cool games or shaders, so many possibilities! Send me an email:

gdanzo@gmail.com

submissionscomments
danwills··on Plasma Effect (2016)
I totally loved the plasma effect from whenever I first saw it, and implementing it myself in Pascal/DOS was one of the first times I really started to understand a 'shading'-like context where you are coming up with a value for every pixel, the pixels can be made to have 2D 'coordinates' (even though they are actually a 1D chunk of VRAM! -> modulo to the rescue!) and that you could transform the 'space' such that you feed in the coordinates (including time) and evaluate different-enough sine functions (then sum them, in this case) to create a beautiful soft-waves-evolving-over-time result! Was definitely an eye-opener about how to make it have nice colors as well! Great to see things like this being documented in this way!
danwills··on Plasma Effect (2016)
Thanks for that! This is amazingly faithful to the original! And although aliasing is pretty-much my arch-enemy in life, here the aliasing and all the slightly-odd z-chatter stuff somehow adds to the charm!? Brilliant!
danwills··on How ancient people saw themselves
Yeah that was my original interpretation of the title too! Perhaps something like:

How did early humans understand their situation and what did they think the 'world' was like, and what did they think they should do with their lives?! I find it fascinating to think how that longing to know what it's all about has changed so much for humans over time.

Mirrors are still heaps interesting though, as is reflection/refraction/light-transport in general I'd say! But it wasn't about what I expected when I read it.

danwills··on A “knot dominated era” may have existed in the early universe: study
I believe so, although the way I usually think about Solitons is like a single packet.. so just one cycle of a wave. Continuous sound could probably be thought of as a continuous stream of solitons (I think ppl call them phonons when it's sound though). I haven't studied PDEs nor solitons in a formal way I just love playing with them. Gray Scott with History and Wave (a formula I contributed to Gollygang/Ready) supports many fascinating soliton behaviours. Here's 25mins of one of the strangest parameter settings I've found:

https://youtu.be/Naj_J8aznyk?si=Da3A3iTz8rN9qrgq

danwills··on A “knot dominated era” may have existed in the early universe: study
No probs, I've had a great deal of fun playing with it indeed! Hope you do too!
danwills··on A “knot dominated era” may have existed in the early universe: study
Indeed! I rather like the idea that solitons are something like the simplest self-propagating 'things' in any medium/computation-reigeme, so gliders in Game-of-Life might qualify and in more complex/subtle systems they can have more complex behaviours as well (like bacteria, or flies? Hehe) Here's a fun example I made in gollygang/Ready (and Houdini) of PDE solitons that spin around with rippling wakes:

https://youtu.be/edNG2EJWQwQ?si=8b3YsHCDIaj0C7Pa

danwills··on Macro Splats 2025
I'm not an expert and have not yet worked with splats, however I understood that unlike super-sharp-edged triangles they can represent complicatedly-transparent 'soft' phenomena like fur or clouds or similar that would ordinarily need to be rendered using possibly semi-transparent curves/sheathes (for fur/grass) or voxels for cloudy things like steam/mist. I gather splats can also represent and reproduce a limited amount of view-dependent specularity, as other commenters have said this is not dynamic and cannot easily deal with changing scene geometry or light sources.. still sounds like a fun research-project I make it do more in terms of illumination though!
danwills··on Parallelizing Cellular Automata with WebGPU Compute Shaders
I've been interested in continuous automata for a good while! I usually call it "Reaction Diffusion" (good old Turing!) but a lot of people hearing that might think I might just mean "Gray Scott", but I actually mean the whole realm of solving various types of equations (in feedback of course) on continuous-valued fields. My software of choice for that is gollygang/Ready (where some of my experiments are available to play with in the release) and also Houdini, to use the resulting simulation data in whatever way one creatively desires!

Here's one from my channel:

https://youtu.be/W6sO8ZkgU9s?si=x-_e3j4IFX0qtekL

Edit:Typo

danwills··on Mathematicians discover prime number pattern in fractal chaos
I want to know more about an intuitive take on how the Zeta function does what it does! I know it must relate somehow to finding (or perhaps excluding) all the composite numbers but I'd really love to get more of a feeling about what each 'octave' of the function is adding-in. Seems like it must be something that 'flattens' the composites but increases sharply (in the infinite sum) at each prime.. but it's still a mystery to me how one could intuitively realise or discover that it's this specific function!? How did he do it?!
danwills··on Mathematicians discover prime number pattern in fractal chaos
I think that actually is a photo of Romanesco or at least a pretty good fake!
danwills··on A platform-jumping prince – History of Prince of Persia's 1990s Ports
One suprising thing that seems to work with video/footage (a shot) once you've watched it a few hundred times and can't really 'see' it naturally any more, is to 'flip' it (horizontal mirror (or negation)) the result is usually surprising at least and can reveal things you couldn't see before! Or, if flipping has run out of juice too, even flopping (vertical mirror or negation, yes the shot is upside-down now, so not as helpful as flipping) but either/or and their combinations can definitely provide some extremely useful new perspective on the visual content one is trying to produce (VFX day job as Pipeline TD now, FX artist previously and this idea helped me numerous times!)
danwills··on Mirror Life Worries
What a thoughtful comment! I concur that the chance of mirror-life 'evolving naturally' (or "in the wild" let's say) is basically zero, but then I imagined a future cell-printing machine that 'wild' humans might make that prints (maybe at near the atomic level), and that made me wonder whether given such a printer you could just swap to opposite-chirality (mirror) ingredients, and maybe mirror the 3d plan that you're printing? Doesn't seem that far fetched if we ever get printing at a very small scale level? But then I remembered a cell is more like a wave than a static object, so all of the above are probably meaningless ramblings.. but all in the spirit of curiosity!

I am not alarmed by the possibility of mirror life because I think it would be at a disadvantage to all other life on earth at present, so it probably wouldn't get very far. (famous last words!?)

danwills··on Neural Nets vs. Cellular Automata
I know it's not the same idea, but I think it's worth mentioning the adjacent concept of 'neural CA':

https://www.neuralca.org/

https://google-research.github.io/self-organising-systems/di...

https://google-research.github.io/self-organising-systems/is...

I can see why Mordvintsev et al are up to what they are doing, but to be honest I'm struggling with understanding the point of using a neural-net to 'emulate' CAs like OP seems to be doing (and as far as I can gather, only totalistic ones too?).

It sounds a bit like swatting a fly using an H-bomb tbh, but maybe someone who knows more about the project can share some of the underlying rationale?

danwills··on Python f-string cheat sheets (2022)
I recently swapped from adding strings together (just what I've always done) to f-strings and I'm not looking back!

I even get to keep the idea of being able to read the vars in-place in the string which is certainly the last thing that I needed to be happy to use them! Full convert now!

danwills··on A simple way to generate random points on a sphere
Yeah @srean gives the example of the different areas of strips at different lattitude, that's a good one - and I think if you imagine wrapping the unit square (2 values randomly between 0 and 1) to a sphere in a lat-long way, the whole top and bottom edges of the square get contracted to single points at the top and bottom latitude locations (respectively) on the sphere.. so if the point density was uniform going into that then it surely won't be afterwards ;)
danwills··on A simple way to generate random points on a sphere
I think it can be done that way yeah but in order to yield a uniform-density of points on the surface of the sphere there's some pre-correction (maybe a sqrt or something? I can't remember) that's needed before feeding the 'uv' values to the trig functions to make 3D positions. Otherwise points will 'bunch up' and be more dense at the poles I think.
danwills··on Ask HN: Help with GLSL Bi-Laplacian
Here's a screenshot of what one of the KSE-based shaders I've been playing with usually looks like:

https://photos.app.goo.gl/NnfjxUwR5ZuH4KkJ6

It's basically KSE but with hue-rotation happening in various-ways so it's really more like 3 separate KSE sims that feed into each other in a cycle. I think it's pretty fun! Happy to share code if it is of interest!

danwills··on Plants monitor the integrity of their barrier by sensing gas diffusion
Agency is the ability to reach goals, even when there are obstacles. Given information such as stimuli, agency is the ability to act/react to that information in such a way as to move the agent closer to their goals.

In the plant case, among many other interesting things (fungal interactions, say) I think of examples like: How roots grow towards water/nutrients (even if rocks are in the way). How leaves/branches can lean-or-orient-towards and grow-towards sunlight. The kind of self-healing that this article describes, and the overall way in which everything a plant does tends to lead towards it being able to reproduce via seeds or spores (or one of the many other ways that plants can reproduce!).

I'll freely admit my perspective on this is influenced a lot by Michael Levin's work around hierarchies of agency (many vids on YouTube) In many of his talks he describes how agency can be treated as a measurable quantity, like something from engineering. This places it far from philosophical or abstract definitions and more in a cybernetic realm where agency is a measurable thing and can either be instructed from outside (like a thermostat) or from within - like when a hungry animal (or plant) seeks food - and as you go up the scale-level for agency you get entities that can legitimately have (and achieve) clear longer-term (and spatially larger) goals. Smart animals - such as humans - can even with a mostly-straight-face talk about and put into place plans that would reach far into the future compared to their own expected lifetime.

So yeah I agree plants certainly can't comprehend BBC2, but I think if that's the definition of agency then we're really not talking about the same thing.

I agree that plants worry about light and water, but they don't just sit there and do nothing! They respond to it with their agency, maybe it's an agency we find hard to recognize and don't fully appreciate and we'll often say it is small/slow or disregard it, but I personally think that plant agency is made of the same stuff as human agency (and we just have a special word for it when it's us: consciousness).

danwills··on Plants monitor the integrity of their barrier by sensing gas diffusion
I think it's pretty clear that plants have agency, and maybe that can be regarded as a phenomena that is on the same spectrum as consciousness, just at a lower intensity (and maybe slower too)?
danwills··on Is mathematics mostly chaos or mostly order?
That is very interesting I agree, and certainly any list of descriptions/identifiers must be countable, though I wonder if there's any validity in descriptions that describe things in aggregate?

It's certainly a brain-bender that even in the unit interval if we imagine filling in all the the rationals and then adding in the describable-irrationals like PI/4, sqrt(2)/2 and so on.. that this still does not even come close to covering the unit interval - or any interval - of Real numbers! My imagination sees a line with a heck of a lot of dots on it, but still knowing that there clearly still uncountably-more values that are not covered/described! Amazing! The continuum (Real numbers) is such a fascinating concept!

danwills··on Is mathematics mostly chaos or mostly order?
> the mathematical universe, like our physical one, may be made up mostly of dark matter. “It seems now that most of the universe somehow consists of things that we can’t see,”

Not heaps fond of relating invisible things in the mathematical universe to dark matter! Although maybe both might turn out to be imaginary/purely-abstract? Imaginary things can absolutely influence real things in the universe, it's just that they are not usually external to the thing they are influencing. If I imagine making a cake say, and then I go ahead and make the one I imagined, the 'virtual' cake was already inside me to begin with, and wasn't 'plucked' from a virtual universe of possible cakes somewhere outside my knowledge of cake-making.

Something nags at the back of my mind around this about maths though, as if to suggest that as soon as there was one-of-anything that was kinda an 'instantiation' of the most abstract "one" object from the mathematical universe.. (irrespective of what axioms are used as long as they support something like one) But I doubt there's never been exactly-PI-of-anything in the real universe, just a whole bunch of systems that behave as if they know (or are perhaps in the process of computing) a more exact value! (spherical planets, natural sine waves etc!)

Very interesting article, I wish my math was stronger! I can just skirt the edges of what they're actually talking about and it's tantalizing! Would love to know more about these new types of cardinal numbers they've developed/discovered.

danwills··on Axolotls May Hold the Key to Regrowing Limbs
I found this diagram:

https://jbiol.biomedcentral.com/articles/10.1186/jbiol105/fi...

It's fairly reminiscent of how limb growth looks during embryogenesis - and I think considering that is how other vertebrate (such as axolotl) regeneration looks, that it's probably what human limb regrowth would be like too. So your second description sounds more like it, but with continuing development of 'prior' parts while the 'later' parts (fingers etc) are still developing.

Michael Levin's group have experimented with a 'bioreactor' that can be attached to the stump of an amputated limb in frogs (that don't ordinarily regenerate limbs) and after a short period of treatment (days), the reactor is removed and the limb then regenerates on its own over the next few months. They are looking into reproducing this in rats now, with the clearly-stated aim of similar human regeneration being the ultimate goal.

I wholeheartedly recommend watching some of Levin's lectures on YouTube, there are a great many of them and I think they're both illuminating and fascinating!

danwills··on Axolotls May Hold the Key to Regrowing Limbs
I think people often hear 'bioelectric' and think it means electricity (electron flux) but what Levin's work is about is a pattern of voltage gradients (that cells maintain using electrically-non-neutral chemicals) that stores a pattern like a memory (or "target in morphospace" as Levin would say) of what to grow back into when the tissue is damaged.

It is about ion transfer between cells that sets up and maintains those patterns of electrochemical gradients. Gap junctions (the cellular pores that facilitate ion transfer) are not unique to neuron cells either, and nor are they even unique to multicellular tissues! It is now thought that this type of intercellular communication evolved in single-celled microorganisms even before the advent of multicellularity (like in biofilms and in quorum-sensing such as what yeasts are known to employ).

I totally see what you're saying if you interpret this as electricity like electrons/electromagnetic-fields in a wire with power running through it, but that is really not what Levin's work is about at all.

danwills··on Flatworms grow a second head instead of a tail, if influenced by electric field
Worth noting, this is not an externally applied electric field but rather voltage potential gradients between the cells in the tissue, and it's mostly altered using chemicals that open and close gap junctions/pores between cells to change ion flow.
danwills··on For algorithms, a little memory outweighs a lot of time
Yeah I had a similar thought back in the 90s and made a program to iterate through all possible images at a fairly low res, I left it running while I was at school and got home after many hours to find it had hardly got past the first row of pixels! This was a huge eye-opener about how big a possibility-space digital images really exist in!
danwills··on WebGL Gray-Scott Explorer (2012)
Yeah awesome I totally agree that the potential seems to be there for universality in RD systems like the one I posted, and also that stability is going to be absolutely key to the idea working at all! Thankfully Gray-Scott and similar systems have already been shown to be resistant to noise (there's an example in gollygang/Ready at Patterns/GrayScott1984/Lesmes_noisy.vti)

I also 100% agree about the wiring-problem when simulating things in 2D! However I've seen how moving-solitons behave a lot, and although they are probably more sensitive, I just can't believe that they are ultimately that different to GOL gliders.. and so I would hope that all that would be required to be able to cross wires would be making enough space, and some careful synchronization (offset modulo-synced clock states) to allow streams to cross without interfering!

Here's way too much soliton-fun I had ages ago in a video:

https://www.youtube.com/watch?v=Naj_J8aznyk&t=12s

I think that how solitons can behave when they are affected by both their own diffused-history and the wave-equation results of their past states, is just so fascinating!

In terms of whether non-local effects might come-in and ruin the completeness-party, most RDs have a diffusion-coefficient and I think there's probably some fairly good guarantees around rate-of-information-propagation there especially for RDs that don't use the wave-equation. The one I posted in my first reply does use wave, but it actually might not need to use it in order to be able to achieve its overall behavior! And even when using wave-equation, the max propagation-rate is still limited by the wave-diffusion coefficient!

I think there are several ideas in your comment that are absolutely getting to the heart of the matter: Building some kind of predictable 'cell' that can take moving-solitons in its 'input ports' and results in a logical result via moving-solitons exiting its 'output ports', all perfectly synchronized to work with coupled 'cells'. It does sound pretty hard! But I think that with a concerted effort, and with the potential frameworks that could be built-into gollygang/Ready with a dedicated coder who's interested in all of this, then some progress could definitely be made!

danwills··on WebGL Gray-Scott Explorer (2012)
I've wondered that too! Uskate world has some features that are a bit like GOL gliders/spaceships, and I found some settings that I thought were a bit reminiscent of GOL on an extension I did to Gray Scott to add coupled 'history' and 'wave' reagents to it:

https://youtu.be/W6sO8ZkgU9s?si=ESgUWb5OfZ97P2hk

I think universality in RD sims is extremely likely (almost a given) but probably quite hard to prove.. I guess all it would really need is a working/stable basic primitive like a NAND gate kinda thing though?

danwills··on Progress towards universal Copy/Paste shortcuts on Linux
The mmb-paste thing is called the 'yank buffer' (and it was a vi/Emacs feature that pre-dates clipboard-based copy/paste) - I use it extensively too, and one important thing to know about it is that it only works on text and it 'yanks' the text when you mmb, so the source app must still be running at the time.

I think it's great that there are 2 ways to move things around, but it does help a lot to be very clear on how both of them work, and some apps do things a bit differently too (eg Ctrl+C in Houdini can be followed by mmb in a terminal, which is a bit unusual, but ok once understood)

danwills··on Show HN: Flowcode – Turing-complete visual programming platform
Really cool! I love programming with nodes and this seems like an awesome start!

One thing I didn't like much was when dragging a node that has an input connection, to the left: The shape of the connection snakes behind the node and has some very sharp corners on it. Apart from being a bit of an ugly shape for a spline to be in (personal opinion) I think going far behind the node like that might have the potential to obscure the connection in certain cases. Legibility of the network should be a top priority for a project like this in my opinion (and you've already done very well! this is more of a niggle, not a real criticism!) Good old adage says that reading code is much harder that writing it and node-networks don't really revolutionize things on that front even though they can help a bit in quite a few cases.

I've used SideFX Houdini a lot and am very familiar with Vops: Node-based Vex code editing in Houdini (to see an example get inside (doubleclick or Enter-key after selecting) a 'Point Vop' inside a 'Geometry'/Sop subnetwork). I'm a massive fan of the way that Vops works! Plus you can inspect the actual code that the overall network is generating by RMB->"Vex/Vop Options"->"View Vex Code" on the containing node. Ah I see flowcode has 'View/Fork Code' for the code of individual nodes, which is awesome!.. but is there a way to see the code of the 'overall network' too? (ie what the wires become in terms of calling, if the nodes are like methods).

So yeah, I think Vops is great, and super fun! If you haven't played with it a bit I think you should! (and you totally can check it out for free!)

I've added a LOT of additional accelerator/helper tools to Vops that I think make the overall workflow much more pleasant. Would be happy to go into what they do in an email or something. I think Vops really shines when you want to quickly belt out a small data processing/generation task quickly without heaps of typing/syntax. The results are generally great too I reckon (certainly run very fast when processing huge batches of similar things).

It's not good for future editors when the number-of-nodes+wires gets too large inside any given subnetwork-level though! I think it's totally fine if there is heaps of nodes/substructure inside loads of 'subnetwork' (slash Houdini-Digital-Asset '.hda' ('.otl') levels as long as the function of the node is well 'encapsulated' (just like a good function/method should be!). Once networks get too big and complex it can become a bit of a maintenance burden, and it can often be sensible to switch to editing Vex as text instead, and putting things in headers/libs and so on when Vex things get reeeally big.

Aaaanyway I shouldn't go on about it I just want to make one main point about the wires in Vops: There are 2 'wire styles' (Shift+S to toggle): Rounded (my preferred style) and 'Default' (which I think is maybe also called 'Straight' in some places but it certainly isn't straight lines, just as straight as possible!). With both of these wire styles, if you have two Vop nodes stacked vertically, and an output on the right of the upper one is connected to the first (uppermost) input on the left of the lower one, you can move either of the nodes vertically about as close as you like to each other (without touching) and the wire will still go through the gap! This is especially so for the 'rounded' style as the line can literally go straight-horizontal through the gap! Of course it's still perfectly possible to make a wire to go behind a node, but in general I think they've done it very thoughtfully! I haven't really stopped to appreciate how well-done it really is, but I think it's top notch and encourage you to check it out, wire then drag some 'null' nodes around and see how it behaves and maybe it might yield some inspiration for flowcode? (And I'll feel quite silly indeed if you reply with 'yeah I know Vops plenty well myself', so apologies if that's the case!!)

Edit:Clarity

danwills··on Pixel is a unit of length and area
Is a pixel not a pixel when it's in a different color space? (HSV, XYZ etc?)
← PreviousPage 2 of 13Next →