Maybe rumination is too strong a word. Im not really thinking intensely about it. Rather I am thinking vaguely about offering it. And by ‘it’ I mean ’some’.
I need to be better about giving back to the community which has been so generous with its assistance in helping me. I want to post more source code but it puts me in a bit of a quandary. What should I give? How much should I give? Frankly, I have no idea.
I am opposed to handing out the source for any of the art projects I am working on. Pieces like Magnetic Ink, Magnetosphere, and Solar are works in progress so it would feel weird to just hand over the code. Plus, some of those pieces are being used for client work so it wouldn’t be fair to our clients for me to hand it over.
There is also the problem of not wanting to teach poor coding practices to beginners. I don’t pretend to have the right answers to all the coding problems I encounter. For some of those problems, I am using code that I know to be crappy but its a level of crappy that I understand and therefore don’t mind using. But it would feel odd for me to hand off code that is held together with band-aids.
On the plus side, I look forward to getting assistance from the general public. Maybe people will show me better ways to accomplish tasks and I always learn faster by example. Perhaps we can rip off those band-aids together.
So now I put it to you, what source code would you be interested in? Ask for specific snippets and I will be much more likely to oblige. Ask for ‘all the code for magnetosphere’, and you will get nothing.

I am very new to processing, but find it very exciting. Since I saw your excellent/amaqzing “birds” work, I was very interested in flocking algorithms, swarm intelligence etc. I implemented a simple boids program, but the amount of particles I can have at a decent frame rate is quite small (~800). From as far as I understand, you “cheated” a bit and used perlin noise (flow fields?) reducing the computational costs. I would be very interested in seeing a very small snippet using a perlin noise flow field for boids.
Robert I would also like to ask you a question. Do you import a 3d model of a bird somehow into processing or do you export velocity data from processing to a 3d app?
Thanks,
Nikolas
Robert, I would also like to ask you whether you have investigated into performing the calculations directly within the GPU ( it should be faster than just using the GPU for rendering). I suppose such a thing though would be outside the scope of processing.
thanks and sorry for the consecutive post..:D
Nikolas
Nikolas: I did ‘cheat’ a bit and use perlin flow fields, but I totally undid all the cheating by using magnetic repulsion collision avoidance which is computationally heavy. I played around with boids a couple years ago but never tried porting the code into a 3D environment. Might be something worth exploring.
As for perlin flow field code, poke around online. I have seen a few people post source for such a thing. I do use some flow field influence in my particle emitter source code which you can find here…
http://www.flight404.com/blog/?p=113
I am importing a bunch of sprites of birds. 160 in total. So it isn’t an actual 3D bird, its a particle moving in a 3D space that picks the right bird image to show depending on the angle at which it is traveling.
Finally, I have not explored much GPU computation. It is within the scope of Processing and a few people have already posted code to allow you to use shaders in the Processing environment but I havent played with it much. Powerful, sure, but also a bit confusing to me.
Hi Robert
Thanks for such amazing work, I totally stumbled across your site whilst doing research for my own VJ application, and have gained a lot of inspiration and ideas from watching your videos.
In terms of releasing code, I’m not sure you should, I think descriptions of the algorithms, pointers to your research into different concepts, and maybe some simple descriptions of the maths involved would be brilliant.
I’m doing similar stuff, and just seeing the code would feel wrong, and would inevitably lead to similar visuals, whereas the algorithms and maths pointers would help people look read and understand things in their own way, and come up with their own amazing imagery.
hi robert,
i have been using flash for quite a bit of time now and have messed with bits of processing along the years since early beta versions, i have recently been doing some nice experimental bits in flash again as i seemed to get my passion for messing around back ever since attending FOTB, mainly after watching some of the visually stunning work you shown off.
my question for you is, i was wondering how you went about getting the nice flocking movement of the birds, i have done some experiments myself and have used animated perlin noise and also the other birds in the group as influence on the movement on the birds, it all looks quite good but was just wondering as to how you went about it as it would be quite nice to compare notes in sense.
also i was wondering if you could maybe point me into the right direction on collision detection on multiple objects similar to your magnetosphere stuff, i am getting my head into some good stuff, but any pointers in that direction would be great also, does not have to be finished examples etc… as i prefer figuring things out myself, but i do from time to time like looking at how other people execute and structure there own code etc..
thanks you very much, and hope you can help with my requests.
thanks again, Stewart
Interesting discussion.
If I was in your position, I would release all the code. For serious fans, art critics, etc this allows them to become so much more intimate with your work and yourself. It is definitely scary to let anyone get so close and see all your warts, the times when you were too lazy to do it right, and the mistakes you made along the way. However your finished work speaks for itself and sharing and opening your work has the same effects as sharing and being honest with others using other means of communication (i.e. you build trust and respect).
My suggestion to you would be to share as much as you feel comfortable as I am confident that the experience on the whole will be positive and you’ll be encouraged to share more and more. Your openness can inspire others to share and communicate with you just as much as you inspire people with your finished work.
A number of people have stated that your code is less useful then some other form of documentation and thus you shouldn’t release your code. This position is basically asking you to do more work, to improve the communication beyond what your code could provide while at the same time hiding all of the communication that you’ve already done by writing the code. Those that think that code isn’t communication haven’t done enough programming. (Obviously, I’d love to see both code and your thoughts about the process and other resources that you used to develop it, but releasing the code costs you a lot less then creating further documentation.)
Statements like these don’t ring true to me: “…you release some code, take a long weekend, and on monday the idea you were so interested in has been poached and turned into something you cannot use anymore without it appearing derivative.”
If the changes they made are also available (as would be under licenses like the GPL) then you have essentially had a bunch of experimentation done for you. If you like the direction it is heading you can expand on it, if not, then you didn’t spend your time investigating – you enjoyed a long weekend instead. I find that worries about derivative work mainly come from people who don’t do much art or only simple one-offs that don’t involve much experimentation. Like science, every artwork opens more doors and creates more questions that we can look for answers to. People who are serious about their work have nothing to fear from sharing and “derivatives” and everything to gain from all the people they can inspire, hopefully turning more and more people into potential collaborators or creators of work that can inspire you.
I am new to this world, but am really interested in it. Can someone please help me?:
What is ” Processing “?? – It seems to be software, but google searches don’t pick it up
Thanks to anyone who can answer =)
Google ‘processing’ and its the top link.
i’m a bit late here, however…
yes, small clean bits of code are nice and perfect to learn certain things.
on the other hand it’s really interesting to see the big thing, because puttin it all together is a science itself and seeing how others handle it all is great.
sure you do lots of stuff that has been done long before, like blending. i found that in an openglbook that’s like ten years old. still, if you wouldn’t have put it out, i wouldn’t have read that openglbook at all.
as said before, you don’t have to worry bout copycats. besides that, i think that your work is a lot more than the code, sure the code is essential but i think there’s more to it than just the code. the way you make it shine, the time you hit the recordbutton, the colors you choose and the context of it all and so on… i believe that the code is one of many possible shapes an idea can take and not your soul.
the moment i see your work i’m amazed and i just get blown away by it. i don’t think he’s a sucker because he does stuff i don’t get. i just love it to see cool stuff, as simple as that. every time i hit a link on processingblogs, i’m hoping to see something really cool that amazes me. sometimes i do, sometimes not. when you release your code you’re increasing the chance that we’ll get to see more cool stuff out there. i’m not clicking these links because i’m afraid someone stole my shit or because i want to check out how many guys out there are more clever than i am. i just want to see cool stuff that makes me say wow! (of course i think aw shit, robert is damn clever and i’ll never get that, but hey, that’s not the point…:)