Some of you may have already seen this, as it has been going for a little while now but we wanted to be sure to bring it the attention of those that perhaps have not yet seen it. Todd McIntosh has put forth the time and effort to organize a fundraiser to hire Matt Ebb to develop an Ocean Simulator as a Blender 2.5 branch! The results are looking very exciting so far and in the end we should have yet another incredible tool at our finger tips via our beloved Blender.
Todd has been kind enough to answer a few questions for us that should also help to clarify any questions you all may have. Currently the fundraising goal is $3,000, which is approaching quickly but there is always room for more help! You will also find one of the early test videos from Matt Ebb of the Ocean Sim modifier in action.
So what is the Ocean Sim anyway?
The Ocean Sim was a Blender 2.4x patch that was developed by Promotion Studios (now Red Cartel) in Australia for the production of their animated short film Lighthouse. They paid to have a developer named Hamed Zaghaghi to port the Houdini Ocean Toolkit code into their copy of Blender in order to make it easier to generate ocean waves for their production. Matt Ebb, who is working on this current project was also involved with the integration of the Ocean Sim into their production pipeline, as he worked for them at that time.
Realistic ocean wave displacement is not truly possible without the specific noise pattern that this algorithm (FFTW) generates. Before this point, all we could use were the standard procedural noise textures in Blender to generate the wave displacement, and it never really produced really accurate waves other than relatively calm and smooth ocean surfaces.
And why does it need rescuing?
Unfortunately due to some technical hurdles as well as the timing of the big Blender 2.5 system overhaul, the Ocean Sim tool, although publicly available as a patch, was sort of left on the shelf, so to speak, and was never ported to the new 2.5 system.
So, what was the reason for this campaign now?
To be perfectly honest, I’ve been working on a personal animation project (reignoffury.com) that will require a number of shots involving ships on the ocean. After some experimentation with the current toolset in Blender, I was not really happy with the results I was getting. After lots of searching online to see what other blender users were doing, I discovered that nobody was getting really high quality results, except for tests that had been done with the old Ocean Sim tool. I was able to get my hands on Kai Kostack’s custom version of Blender 2.4x that had the Ocean Sim patch in it, but really wanted an OSX version to run natively on my machine, and as well really wished that the tool could be used in 2.5 now that I’m used to all the great things that 2.5 has to offer.
How did the SaveTheOceanSim campaign come about?
First I contacted Matt to get a professional quote to see what the ballpark cost would be to port the Ocean Sim code into a 2.5 branch. It seemed pretty reasonable (in the $300-400) range, and although I wasn’t able to hire him with my own funds, I thought that it would be achievable to find some other blender artists to share the costs with. I ran an online Poll at BlenderArtists.org, and had at least 16 people vote Yes to supporting the project. So, I took the plunge, built the SaveTheOcean.com web site with information about the project, and a donation widget, and then launched the site and posted the announcement on Planet Blender.
And what was the response like?
Unbelievable really! We reached the initial $350 goal within about 24 hours, and donations kept coming in after that as well. It seemed like there were a lot of people who had been frustrated with the situation, as I was, and were immediately on board to help support this project. Seeing this, I raised the next donation goal to $1500, based on the current level of donations coming in, and started discussions with Matt to see how best the funding could be put to use.
How has the ocean sim port been going and what are the current development targets for the project?
We’ve already achieved the original goal which was just to recreate the original functionality in the 2.4x patch. We did run into some trouble getting it to work with multithreading, which cost some time over the original quote, but we solved that issue now and are moving on to new features.
Matt had always wished that the tool could have had a modifier based component. This would allow the tool to generate the mesh with the appropriate subdivisions to match the resolution of the heightmap that the Ocean Texture generates. After creating the Ocean Texture in our 2.5 branch, we’ve also set up an initial modifier based tool, and are working on getting it to generate materials/textures properly.
Also, we’ve created a Foam Mask setting which is new and will allow better control of the whitecaps colour setting than before. We’ve also spent some time changing the way the ocean code is grouped, de-coupling it from the original texture tool, so that it can be more easily re-used with the modifier tool and with future solutions that may include the nodetree system that Lukas Toenne is working on. We won’t be getting advanced effects like spray from the wave peaks until the internal particle system allows for dynamic emission, and hopefully some of the work that Lukas is doing will allow for that in the future. In addition to improving the ocean toolset now, I wanted to position it to take advantage of upcoming changes to Blender that will allow for even better ocean generation in Blender.
It seem donations are still coming in, what are the plans for this extra money?
Yes, as of today we’ve just crossed over the $2100 mark, which is really great! Our primary goal is to establish the best/most stabile version of the basic ocean sim tool with the initial features and settings. It may be a combination of a modifier and ocean texture, or it may be rolled into one, we’re not completely sure yet. The second goal is to find a way to achieve a new way to generate foam from the wave peaks. This makes a huge difference in the realism department, and we’re excited to find a new solution to this. The bottom line is: we are most definitely into a stage that requires research and experimentation to create the innovation that we’re looking for. The input of donations going forward will directly correspond with the amount of time we can hire Matt to focus on this development work.
The project seems to be going very well, have their been any negative reactions to the campaign?
Response has been overwhelmingly positive, however there have been a few issues that have come up, and that I have needed to be vigilant about correcting.
The first issue was that people assumed I was guaranteeing this toolset would make it into the Blender trunk and become a release feature. This was never true, and I always maintained that we were creating a branch version, and hoped that it would make it into trunk eventually. So far, the feedback from Ton and others is that there does not seem to be currently any features/settings of the tool that would immediately prevent it from being rolled into the trunk version eventually. So, no promises, but we hope it will.
The second issue that has come up on forums and blog posts, is that, in people’s excitement over this project, they have started saying that this is the future of all new Blender development, and this is undoubtedly not true. Blender would not be where it is now without the countless hours of unpaid developer input. We are simply creating a mechanism for artists to contribute to the Blender toolset with their wallets instead of with their programming knowledge. I really think it is a win-win situation for everyone.
The third issue that has come up (although not as often I thought it would), is the issue of accountability, and the lack of a legal framework for the process of collecting funds and forwarding to the developer. Essentially, my company is receiving donations from the community, and then I am hiring Matt directly to work for me on this project. There certainly needs to be a certain level of trust here for this to work, and I think that creating solid promotional materials with the website and the fact that we are hiring a well-known Blender developer has helped tremendously. On the flip side, there is a certain level of financial risk that I’m undertaking to act as an escrow service in some respects, so in the future it might be useful to create a third party service that would be known by all parties to handle the financial transactions. For right now though, it seemed that I just needed to forge ahead and get it done, so that’s how it worked out this time.
What do you envision as the outcome of this project?
As of right now, the best case scenario is the creation of a Blender 2.5 branch that has a solid Ocean Simulation tool in it, that generates realistic waves shapes, and colours, and that also allows a certain amount of foam simulation as well. At the end of the project, the patch will be posted to the Blender Projects area, and any builds that we have will be posted to GraphicAll.org for everyone to use. I also hope that developers will see the excitement of the community around this project and will continue to put time into improving the tool, and eventually rolling it into the future nodetree system when it matures and dynamic particle emission is finally possible in Blender. But for now, we hope people will be able to put the current Ocean Sim Tools to work right now and incorporate them into their current prouduction workflows to get some exciting results!
Thanks once again to all those in the community who were courageous enough to support this project with their donations! Cheers.
You can find out more on this project and donate to it by clicking HERE!