Hacker News new | past | comments | ask | show | jobs | submit login
Spurious Splines (inconvergent.net)
76 points by thesephist on Nov 15, 2022 | hide | past | favorite | 14 comments



(This should probably have a 2016 tag)

I’ve been a long time fan Anders Hoff’s work - it’s well worth it to check the other posts on incovergent.net - quite a few have been covered here on hacker news.

Interest also to see how he has moved to Lisp over time, functional programming seems to work well for him for this type of generative art.

Lastly - I think it’s refreshing to still see this on the front page : beautiful generative art without DNNs…


2016 is accurate. and thank you!

with danger of nitpicking: it's more meta programming that has drawn me to lisp (rather than functional programming). the most recent post on my site describes an aspect of this (datalog for drawings as graphs in common lisp). i figured the distinction is worth pointing out


Thank you for the clarification (it’s not nitpicking). I hadn’t read any of your posts recently - I’ll have some reading up to do I see :)


Neat site! Minor usability thing -- I might suggest reducing the velocity of the animations, their current speed is a little unsettling.


i don't disagree, but i also don't think i want to dig into a 6 year old js build right now


Cool article. Reminds me of the flash days .. where working with splines / bezier curves on day-to-day web projects was pretty much the norm. Dynamic motion guides, natural distribution around a shape. Not to mention visual experimentation like this. None of this pre-destination layout engine mumbo jumbo. The whimsical web was where it was at :)


Splines are also a great tool to know about when you're trying to approximate smooth curves from sparse data! I reached for splines and martingales a ton when we were developing a patient simulator.


Care to elaborate on the martingale part, very curious.


Martingales with barrier reflections are a fantastic way to model all kinds of parameters that are randomly distributed over time, but stay roughly the same value in the short haul. They're also very well studied, so you can make strong guarantees about their expected values and distributions, unlike naive random walks that stay within a given range.

We published a paper about such an application to modelling sensor error here: https://doi.org/10.1177/1932296817711297

The martingale comes up under the "simulator" section, starting in the paragraph "In our previous simulation study".


Thanks a bunch, looking forward to reading the paper. I am especially intrigued by the claim one can give stronger guarantees than say a simple random walk.


By "naive" random walk, I'm referring to how one would _implement_ a random walk that's restricted to a given range. The most straightforward way to do it is to "clip" any values that would exit the given range by simply coercing them to the bound, eg:

if next_value > upper_bound: next_value = upper_bound

if next_value < lower_bound: next_value = lower_bound

This works fine, but serves to concentrate probability mass near the boundaries, so it's no longer uniformly distributed. By reflecting across boundaries rather than coercing, you're effectively flattening that concentration. If you coerce, you also reduce the expected value, which may or may not be a desirable property.


The circles remind me of an enso https://en.wikipedia.org/wiki/Ens%C5%8D


at some point several people asked me whether it was inspired by enso (i didnt know about enso at the time) or whether i was involved in the Arrival visual effects (i was not) because of this higher resolution rendition of the same algorithm https://img.inconvergent.net/generative/78b7266.html


Cool!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: