Advertisement

You're blocking ads, which pay for BlenderNation. Read about other ways to support us.

Google Summer of Code: And the Winners are...

52

Google has spoken - five students working on Blender projects will be sponsored this summer. The winning projects are all great upgrades for Blender. Read on for more details.

Last year, the result was a bit disappointing, but when I talked to Ton and Chris in the Blender Foundation chatroom, everyone seemed to be quite satisfied with the result. Thirty proposals were submitted of which Ton thought about 15 were serious enough to be considered. Chris Want, who will be coordinating the effort on behalf of the Blender Foundation, says:

There were a lot of great applications this year, and that made the decision process very difficult. I think the ones we've chosen will add some real benefit to Blender. We we're surprised to get five proposal this year -- big thanks to Google!

Coding will commence on May 28th. For the full timeline of the GSoC, look here. We'll do our best to post regular updates on the progress of these projects on this website.

Below you'll find the short descriptions of the projects from the Google SoC pages, combined with comments from BlackBoe that I found rather useful.

Congratulations, winners! Make us proud :)

Proposal to implement deep shadow maps and a tiling disk cache in Blender
Joseph Eagar, Mentor: Martin Poirier

This proposal is to implement deep shadow maps, including mipmapping, motion blur, colored shadows and filtering, in Blender. Also, a generic disk cache mechanism will be implemented.

Deep shadow maps are an advanced technique to make high-quality shadows. They work by storing additional samples and transparency info inside of the shadows, allowing for advanced techniques such as mipmapping and motion blur to be applied to shadow maps.

Since deep shadow maps take a great deal of memory, a generic tiling disk cache will also be implemented. This system will simply swap shadow map tiles to disk as needed to keep RAM consumption below a user-defined limit.

BlackBoe:

Deep shadow maps are good for hair and volumetrics and are pretty much in every way better and more detailed than regular styled shadow maps. Coloured transparency, motion blurred shadows, etc. They take up more space, though, so he's going to make a swapper for them as well, so they don't drain RAM so much.

A Render API for Blender (version 3)
Aaron Daniel Moore, Mentor: Ton Roosendaal

The current system for converting Blender's database into render data is awkward. This has two important consequences. First, the system is difficult to maintain. When Blender changes there is no well-established module for the export of the new data for rendering; instead the existing export code must be searched for the places which need changes. Second, it is difficult to integrate external renderers. I propose a render API take the place of the current system. The current setup's main fault is its lack of structure. Thus, the most obvious change would be to create a well-defined, documented protocol here. By providing easy functions for the access and export of Blender's scene data, both problems would be solved.

The current system which interfaces between Blender and its renderers (mostly in convertblender.c) would be replaced with two separate systems which perform its task: the render API and the exporter. A plug-in system would be created so that by swapping DLL/SO plug-ins Blender could switch which renderer it is hooked up to internally. Code would be created to connect Blender's internal render via the API, completing the replacement of the existing system. Furthermore, detailed documentation of the render API would be published online to facilitate the production of exporter plug-ins for external renderers.

BlackBoe:

Render API. Currently, the Blender Internal renderer is tied into Blender in one big, tangled, disorganised mess, all loose wires sticking out. It's hard and unpleasant for anyone to do any work with render systems. The API will take all the loose ends and tie them into a standardized 'plug'. This'll be easier to take care of, and also allow for faster, cheaper, easier and more efficient addons for pretty much any renderer ever, Indigo, Sunflow, Yafray, Renderman, etc.

Blender audio system cleanup and upgade
Csaba Hruska, Mentor: Robert C. Holcomb Jr.

The main purpose is to remove every other sound code references from lender source than SoundSystem library.
The other task is removing unneccessary dependencies (fmod, openal) from SoundSystem code with keeping API unchanged.

The only used library is SDL, because it`s good multiplatform support. Openal will be replaced with verse project`s audio system code (code is available in verse blender source).

BlackBoe:

Blender audio system upgrade. Right now Blender's sound system is like an old toolbox, filled with odds and ends and old bits of junk which might not be useful but which no-one wants or has the the time to throw away. It's a basic cleanup and upgrade job, though it'll take a while, considering the mess.

A GLSL Shader Editing and Preview System for Blender
Miguel Torres Lima, Mentor: Brecht Van Lommel

This project's goals are: to implement support for improving Blender's current material display in the 3D View window, using GLSL programmable hardware shaders; extend Blender's 3D View real-time material preview to support node-based materials by implementing a system to combine shader fragments that represent each node of the graph at real-time and, from those fragments, generate GLSL shaders; create a GLSL shaders representation for Blender's material nodes.

Further objectives, if the remaining time allows are: to create a generic GLSL shader node, allowing users to create their own shader in Blender's Text Editor window; to allow to import/export GLSL code for a material node network and to integrate it with Blender's scripting system and the forthcoming PyNodes API.

BlackBoe:

GLSL Shader Editing and Preview: Basically, a big revamp of how the Blender 3d windows draws materials, this time using GLSL pixel shaders. Will probably be a crapload better than 'textured mode'. :P

Mesh bevel and offset tools/modifiers
Levi Schooley, Mentor: Geoffrey Bantle

Tools to create beveled edges are very important in technical modelling and rendering. However, it is also important that the artist have as much control over the process as possible. During modelling, the artist should be able to bevel selected faces/edges/vertices, choose the appropriate beveling method, and accurately set and view the final result in real-time. Also, a mesh-wide technique for producing a beveled result would be very helpful, mainly for rendering. This would be best implemented as a modifier with options to bevel based on edge crease values, vertex weights, and percentages (based on face joining angles and face area sizes).

In addition, based on the fact that there is a shared interest and perhaps even similar algorithms, the creation of a parallel offset tool would be a great benefit to technical modelling. A parallel offset tool increases or decreases the area/volume of a mesh while attempting to keep the points on the resulting surface as equidistant as possible to the original surface.

About the Author

Avatar image for Bart Veldhuizen
Bart Veldhuizen

I have a LONG history with Blender - I wrote some of the earliest Blender tutorials, worked for Not a Number and helped run the crowdfunding campaign that open sourced Blender (the first one on the internet!). I founded BlenderNation in 2006 and have been editing it every single day since then ;-) I also run the Blender Artists forum and I'm Head of Community at Sketchfab.

52 Comments

  1. Congrats to the projects that have been chosen! But I hope that most of the proposals will find their way into Blender anyway. :) A lot of interesting things will definetly occur in the next few months!

  2. These projects are really great! Best of luck to all participators!

    BlackBoe has got quite a few good comments. I don't understand people giving under-the-hood upgrades a hard time. They are crucial to the future of Blender, and will make it less painful for developers to add features in the future. This will eventually mean Blender will get even more features...! How can this not be great? :)

    //Mathias

  3. Every single one of these sounds great! So do the ones that weren't chosen, actually. I'd start using a render API and a parallel offset modifier immediately, and the deep shadowing system sounds very handy too.

    Special hats-off to those who are going to take on the audio system cleanup.. It's very un-sexy code, but when done, Blender will be able to grow in some important new ways. Along with the GL shaders, these cleanups could lead to big improvements with the game tools also.

  4. The main purpose is to remove every other sound code references from ___lender source than SoundSystem library.

    Blender ;)

  5. man! those are some serious projects, and they all involve a lot of hard work. i am amazed that anyone would be willing to open up these dark corners of the code, and not just clean, but re-organize them into something functional. these guys have my total respect. good luck, and god speed! = )

    jim ww

  6. Ah.. these entries sound really good and useful, all of them.

    Is there any news about n-gons support etc other modelling improvements?

  7. I'm disappointed that the Freestyle Project didn't make it! This would have been a REAL enrichment to the growing armada of blender tools and also would have made the product blender the bit more unique than it already is. Also the "interactive tools" issue isn't addressed at all - I mean things like changing button values with real time updates in the 3D viewport.

    Having that said I still very much appreciate the efforts behind every single line of code which makes blender better, even if it's not my personal favourite killer-feature. The Blender project has kept me thrilled over the past 5 years and also has enabled some otherwise impossible projects. So, rock on!

  8. Did I read right - is Blender actually going to get proper beveling tools at last? I can't wait. I started modeling with an old version of Cinema 4D but have steadily found myself doing more and more in Blender and finding it generally a lot easier to get on with. While I wont be giving up Cinema completely in favour of Blender, it will be such a relief not having to export models back and forth between the two apps just to do a little beveling.

    Best of luck with the other projects too.

  9. @S-T-S: the bevel project will also include work to get Bmesh, a new mesh data structure that allows n-gons, to the point were a bevel tool can be implemented.

    @marin: There was no Freestyle proposal submitted, no user interface related proposals either.

  10. Bevelling tip:
    -Use Simple Subsurf (2 or 3)
    -Add an other Catmul Clark Subsurf (2-6 depends on how smooth you want it to be)

  11. I will welcome all these update/upgrades with open arms just the same as I do all the other enhancements the devs put in every release! Blender makes me happy!

  12. Well well, very important features from Blender were developed via GOOGLEs "Summer of code".
    In the past it was for example Blender fluids.
    But the downer is that Blender is working with a commercial institution of censorship!!
    This fact torpedos the spirit of free software!!

  13. DEEEEP SHADDOOOOWSSSS YEAH! IT ROCKS!! YAHOOOOOO

    This year applications seems all very realistic too. What happened to cloud generation, Sketch based modeling, ODE integration etc etc? Regardless, Every SoC helped Blender in ways that really puts Blender on the map.

  14. bg:

    Is blender working with Philips? I never read that.

    ED is open source and Philips is welcome to use it within the parameters of the license that ED was released under. That in no way says that Blender is working with Philips to censor.

    Watch what you say man. You could be starting some nasty FUD by your words.

  15. Just curious, if blender's game engine and OGRE plug gets through, well what I mean is, ogre is realtime rendering, very fast realtime rendering, and there's the echo project to get it working with blender's game engine, I read a lot of realtime viewport things here, but for a noob in coding it seems like reinventing the wheel. I don't suppose it's anything like that, but can anyone explain what it is then? AKAIK the GE uses the realtime viewport just as blender does right?

  16. Wow, just here to express my gratitude and to wish the coders all the best and that all of the projects get implemented, eventually! (aaah, well, especially the shadow maps, the render API and the Bevel tool...just to be honest ;) ).

  17. @FreakyDude: The game engine does not use the 3d viewport code, it does draw in that same rectangle, but otherwise there is no code sharing. The point is integrating it properly, supporting Blender materials, textures, texture coordinates, nodes, .. . Ogre might help implementing, but on the other hand the actual code to get shaders running is fairly small, the real work is in integration.

  18. wow those are very good futures, also very hard to make, but I am sure they can pull it off, good luck to them and the blender team.

  19. Mmmm. I like the changes coming, particularly the render API. Please don't be mistaken though, all of the rest of the 'goodies' sound really good too. 5 projects that will make blender far richer than it is now (and I'm still beaming over 2.43). Thanks again to all the coders for the great work!
    -bd

  20. I think these projects were very well selected. I'm also excited about Freestyle, but I think the render API will have a big impact on making Freestyle integration easier and better, and I think it's great that so many comparatively less-splashy but fundamental issues are getting addressed. It looks like it's going to be a great summer. Congratulations to the coders!

  21. """"""""""""I'm disappointed that the Freestyle Project didn't make it! This would have been a REAL enrichment to the growing armada of blender tools and also would have made the product blender the bit more unique than it already is. Also the "interactive tools" issue isn't addressed at all - I mean things like changing button values with real time updates in the 3D viewport."""""""""""""

    Don't be disappointed. Did you read blackboe comments? They are building a unified API to make it easier to implement other renderer. This means, once this thing is finished, it should be a breeze to implement renderers like FreeStyle in it.

    * Bliss... *

    Anyway, thanks to blackboe explanation. I admit I would have been a bit puzzled by some of the choice otherwise. :D

  22. This is an idea for thinking outside the box. I think Render API and viewport display should be unified. Look at Equinox 3d for example. Check out viewport drawing options which include raytrace et al. Same goes for interface, make it abstract enough so I can render my interface in yafray. Close minded people wont get the point of the suggestion i guess.

  23. Oh joy of joys......dare I suggest that I would dance in the street (a quiet cul-de-sac) if the Bevel functionality were to be implemented as proposed.

    Kram 1032, I think you missed the point. We want to bevel only selected vertices, lines, faces....not the whole mesh.

  24. Thankyou Google for supporting opensource projects like this.

    ...and having read all the comments I think (unless I missed a comment) that I will be the first to say that here, does everyone here have something against Google? If I read the Google Summer of Code FAQ right then Google is funding this. Come folks give some credit where it's due :P

    No nastness implied just saying... :D

  25. Well I'm kinda sad that volumetric effects got passed over again, maybe next year. And whatever happened to the sky/cloud generator from last year? I guess Google wasted their money on that project because there's nothing to show for it.

    I am happy about the beveling tool, that will be extremely useful!

  26. michael Grosberg on

    These are very, very good news. Some years ago I made a list of all the things professional 3d apps had that made Blender a no-go for me. Viewing textures and materials in the preview window and being able to bevel selected adges are almost the last features that are still missing. Now only a better UV-project modifier (one that allows you to map using box, cylindrical etc) is missing to make Blender complete.

  27. Very cool projects, I'm personally looking forward to delving into the new render API...

    @ all the Freestyle enthusiasts: I think that it's indeed in the best interest of the project (which definitely lives on) to take advantage of this new render API, along with pynodes which show great promise for the UI part. So, yes, it may take a while to get to the point of a super-smooth, seamless integration... But don't worry, you won't have to wait for ages before you get some new stuff to experiment and play with (you too, Mac users ;).

  28. Boy that's some good stuff they got in there. Can't wait to see what becomes of it. :)

    One thing I did want to see though was the texturing additions. Specificly the improved proceedurals.

  29. Wow, these projects sound great. They also sound very ambitious, so I wish the coders the best on getting them done.

    That said, I have my concerns about the sound system overhaul. Last I knew, snailrose was actively working to integrate the OpenAL library into Blender for use in the Game Engine, so it sounds like whoever is doing this project would be working against him on that. The SDL sound library is nice, and it does support a lot of great formats (yes, PlantPerson, it does support MP3 and OGG), but I think it lacks proper 3D audio support if I remember correctly. I'll definitely be looking into this one further.

  30. I'm curious if the sound cleanup will include output with the video file. That would sure be nice and streamline work flow.

  31. Wow. These all sound great. The Rendering API rewrite and the bevel are two things i've been hoping to see done for a while. The others sound equally awesome. Thankyou Google :D

  32. It's really sad that NURBS was not even put up on the proposals page. It's such a very important project and without it, blender is useless for serious engineering modeling. The offset project is really nice and a serious tool and I hope that the NURBS code will also get this lift.

  33. All of these project proposals will be great additions to blender when they're done, thanks to everyone who's taking on one of these projects!

    @blendenzo
    I would hope that efforts would be coordinated, that's one of the reasons google requires project participants to have a mentor with the sponsor organization

    @esben stien
    It's a volunteer system, so if nurbs isn't getting worked on, it's because no one wanted to do it.

Leave A Reply

To add a profile picture to your message, register your email address with Gravatar.com. To protect your email address, create an account on BlenderNation and log in when posting a message.

Advertisement

×