Saturday, 26 September 2009

Dart Throw Update

3rd July 2013: Please note: the latest, updated,  version of Dart Throw is here.

I've updated the Dart Throw ICE node to version 0.9b. The new version utilises the new port dirty state features in the SDK to prevent the compound firing when you make changes in the overall tree. I've also added a cancel button and re-wired the evaluation cycle. All in all, this version is more stable and usable. Big thanks to Amaan Akram for help and advice with the code.


Please note that due to limitations in the SDK when you cancel an evaluation in progress, the values in the PPG cannot be reset to their original values. CTRL-Z will restore those values.


  1. Hi Julian
    Thanks for sharing your work, it's very generous!
    specialy this one, I wanted to implement a poisson disks generation, but didn't found the time. some month ago I found this paper that seems to be the more efficient way:
    Is it the one you are using?

  2. Hi Ahmidou,

    That's a really interesting paper! I hadn't seen it. I'll certainly look at how feasible an implementation is.

    At the moment, I'm using a very naive hybrid technique where random polygons are selected with a probability depending on polygon area. Darts are thrown into that polygon and then the polygon and its neighbours are checked for radius collisions. It's quicker than 'pure' dart throwing but doesn't use any particularly advanced techniques. I was going to try and implement Dunbar and Humphreys Scalloped Sectors next but the paper you've suggested looks excellent.

    This particular version is kind of 'quick enough' for now - it just needs some kind of abort threshold when the number of failed throws reaches a certain level and iterating any more becomes pointless.