GSoC Wishlist

Hi all, I’m working on our GSoC application again this year. Part of that is a wishlist.

Would be interested in where you think Blender needs the most ‘polish’ still for your daily work needs.

When you respond do ‘Area - Suggestion’
Ie ‘Sculpt Modeling - faster multires level changing, higher poly count, faster smooth brush’

Here are the categories. You can also provide links to relevant research papers if you are aware of any. Note that these won’t necessarily go on the ideas page that we submit for gsoc, but they will be added to the pool of things we consider.

BMesh Modeling
Sculpt Modeling
NURBS Modeling
Retopologizing
UV Unwrapping
Paint Texturing
Rigging
Skinning
Animating
Visual Effects
Lighting
Shading
Rendering
Compositing
Motion Tracking
Fluid Simulation
Hard Physics Simulation
Cloth Simulation
Particle Simulation
Scripting
Video Sequencer
Import/Export
Asset Management
Game Engine
Interface

Well ill keep it simple, and my biggest wishes are:

Fluid Simulation-no jagged edges

Smoke Simulation-(not a topic I see?)-No jagged edges(occurs usually only when working with fire. Smoke works fine), texturing smoke by the time it has been alive

Particle Simulation-Reactor particles like in 2.49

As you can see, I do a lot in simulation, and honestly I think that if these were polished in Blender, than it would look way way more professional because that is IMHO what is holding it back quite a bit. Also it seems like these things should be very useful in the open movie projects.

In no particular order:

  • Update modeling tools: Now that Bmesh is in trunk, maybe a student can add, update and modernize the existing tools in Blender, since it seems Campbell and Co. will be pretty busy due to Mango: Add tools like inset, bevel, bridge, etc to the core, fix some broken and/or restore some removed tools from 2.4x series. (Sure, we’ll know that ender79 and HowardT are doing some work on some of these, but still a full time working student can do additional things).

  • Bring Blender to the New Millenium by updating the old, wise, proven but nowadays slow and aged OpenGL engine (From the viewpoint of Videocards makers anyways :wink: ). Sure, it sounds nice, but maybe i’m asking too much for 2 months of work. Anyways, is a known fact that newer video cards are nice machines to toy with… except when hardware manufacturers introduce some bias in them to force users to buy their expensive line to develop or do art on them. Maybe as a minimum should be fix the problems with selection, display modelling speed, and of course the student should have access to these nice Intel cards that comes with these nice machines with these nice Core I7 advertised as the most powerfull machines in the known Earth… (sarcasm FTW!..) to try to make Blender work on these. (reading again what i wrote makes me think i’m asking too much… :wink: )

  • Retopologizing Tools (imagine the voice of the mentor of Dungeon keeper 2): Upon once a time, there was a student, the name of which I have no desire to call to mind, that proposed and worked on a project that would bring upon Blender the automatic retopo tool. The idea was to make a sculpt model, draw some control points and press a button to have a mesh with a nice topology, and be editable afterwards, or add more control points and refine results again. This was left unfinished, maybe somebody want to complete it… (also, the retopo hell problem could be solved…)

  • Polish, update and bring the Avocado Branch from GSOC 2011 to Trunk, since Bmesh is already here.

  • Make the outliner more usefull. It can be more functional than nowadays is. I think many artists can give some ideas about it, and the forum have quite some of these.

  • IF somebody wants a real challenge, rewrite parts of Blender Internal using OpenCL. 'nuff said. (well… is true that Cycles will replace it in the due time, but biased noiseless renders can still be used, and the faster, the better)

  • Insert your crazy idea here…

My ideas for GSOC projects:

  1. Bmesh Modeling. What I’d really like in blender is Modeling and snapping tools to make blender as good for precise modeling as autocad.
    Particularly:
    When drawing a line, you should be able to input a precise length of the line, and then a precise direction according to view. The ability to input the lenght by inputing two point positions. How it works now: You can input the line length by writing it in, but the direction can only go on XYZ axes.
    Multiple Ngon holes in Ngon faces.
    Cad like snapping tools. Snapping to more places, such as the middle edge, perpendicular, polar, ortho, parallel, intersection, etc… And the ability to turn more then one of these snapping rules on. The ability to set the hotspot - The 3D point that should be snapping (Right now Blender chooses a vertex posistion by distance)… Perhaps the 3D cursor can be the snapping hotspot, so the 3D cursor should also follow snapping rules, so to avoid such things as going through menus to Snap cursor to vertex.
    Cad like modeling tools: Trim, extend, offset, mirror by user input (A point, Two points, three points), etc. And also, a tool that makes a vertex where two edges touch each other.
    Measurement tools.

I find it impossible to model precise things in blender. I can only make it approximate. So that’s that.

  1. Interface. 3D view Beautifying. Such things as preselection highlighting, gradient backgrounds, more ways to display object selection (Right now it draws an outline, but drawing a bounding box instead should also be an option), partially transparent wireframe drawing on solid. And so on… Should be quite an easy project to do.

  2. Has no category, but a 3D view drawing refactor would be really awesome. Blender 3D view can handle less polygons then many other similar software.

  • IF somebody wants a real challenge, rewrite parts of Blender Internal using OpenCL. 'nuff said. (well… is true that Cycles will replace it in the due time, but biased noiseless renders can still be used, and the faster, the better)

Or give Cycles the ability to do biased noiseless renders. And it should be able to do that in due time, because it can’t replace BI unless it conquers all the advantages BI has.

Atmosphere Enhancements… is a big one

First up, is the sky texture… At the moment it doesnt really emit any light, and you cant change the sun size… and you cant change the colour of the sky or sun without having to hook in more nodes or messing with the turbidity…

Atmosphere clouds… This is a big one, but it would be awesome to be able to have it like vue where we can just add in cloud layers and be able to change each of their parameters individually…

Mist / haze, falloff colour and blur… this really helps the realism for environment renders…

Texture enhancements
would be cool to get some procedual texture nodes, such as cracks, bricks, dirt, etc.etc. being able to be procedually generated

Cycle Enhancements
Multithreaded BVH building, Motion Blur support, Fur Rendering, Particle colour rendering (like what BI has, where you can have a different colour per particle generated), HDR textures (this one may make it in soonish), Volumetric rendering, lens flairs (could be a compositor node?), atmospheres (as mentioned above)

Crowd simulations please! this can be obtain by pushing a little bit more the actual particle system (boids), but actually it’s a little bit limited in some ways how the particles work in Blender, also I don’t know why there’s some rigid body, soft body and even a demolition simulators without being finished, it’s a real shame, here’s some examples:

Whatever get’s worked on the most important thing is that it’s stuff that actually ends up in Blender. I don’t know the reason half of the GSOC projects end up as a dead end but it would be nice if there were some steps taken beforehand to make best use of this valuable resource.

-Improve 3d viewport shading like 3D max
-things like bake AO on vertex color
-Retopologizing
-Dynamic retopology like sculptris or Zbrush
-add some new sculpt tools
-Asset Management: with library for material, mesh, texture, material cap for sculpt mode
-and vertex normal editing
-improve the import/export for UDK

i want to be game developer and i think this things speed up a lot the workflof of creation of asset.

Vue was mentioned but atmospherics are not a 2 months job, they are a large project.

Something that might be a 2 months project would be to add to Blender a dedicated terrain primitive in the spirit of POV-Ray heightfield :yes:. Heightfields are internally very different from meshes because they store only the height at each vertex or quad center, so they are very memory economical (x and y coordinates can be inferred from cell indexes, cell size and heightfield location); you can easily deal with 2048x2048 or 4096x4096 matrices; there are also some known efficient algorithms for doing raytracing on them.

If anybody is interested, please pester me. Rendering landascapes is my obsession since POV-Ray 3.1 in 1997 (and using fractals to generate them dates back to 1987 :eek:); in addition, I am a Vue Infinite subscriber.

Sculpt Modeling - unlimited clay, new brushes like reduce brush, dynamic retopology
Animating - object select in action editor, groups in action editor

In general I’m mostly interested in game engine content creation.

  1. Baking:
  • cage
  • cavity
  • custom shaders
  • Cycles lightmaps
  • higher non-multires polycounts
  • speedup
  • Improved ui. Set object groups and target textures, press a button, get all passes you want already saved to disk.
  1. Retopo:
  • Better tools for manual retopo. Much more important than any automatic method.
  • Solve the age-old occlusion problem so that we can see what we’re doing…
  1. Texturing:
  • Overlays
  • Layers (like in photoshop, with blending and combining. Just let me use the damn texture node stuff in painting.)
  • multiple textures at once (bump+paint)
  • better brushes (what happened to mypaint brush integration?)
  • normal painting
  • cavity modulation
  • modulation with any custom (GLSL?) shader
  • I could go on and on…

UV Editing:

  • multiple objects at a time. better support for atlases.

Modelling:

  • M0AR T000Lz!!@! (that’s already being worked on thanks to Bmesh) :wink:

Hi feel free to add categories that I missed, those were off the top of my head.

Textures: SVG textures, Ptex, :smiley:
Svg has been done before and needs updating.
Ptex was fairly well done and needs finishing I think.

Edit: 3dview gradient background, was done needs incorporating. Must be a few things like that that need rescuing.
Someone could make a project out of finishing a number of these things off.

Freestyle - edge intersection & nodes for compositor, NPR/toon/hatching shaders for Cycles, brush engine integration for painting (and shaders?)

Replace current value driver system with a node based system.
That would be awesome.

All in all: polish existing stuff, and don’t make to much new fancy features.

Dear Santa:

Viewport:
Performance overhaul
Display procedural textures
Stencil/Buffershadows from all lamps in viewport for better feedback on lighting setups.
Better GLSL feedback on materials - although Cycles RT is nice you can’t preview an animation in it for instance.

Scultping:
Dynamic topology
Guided Retopology
Improve brush management
->Viewport -> GLSL shaders for better sculpting feedback… e.g. cavity shaders

Bmesh:
Bmesh polygons and quads handleable as triangles with turnable diagonals while Blender treats them as quads or polygons.
Knive, Cut, Bevel, Inset tools

Physics+Simulation:

OpenCL + Bullet integration into the viewport, no more baking for ages and no more recording IPOs from the game engine, which has become a neglected stepchild anyways. Springs, gravity etc. for Armatures :smiley:
OpenCL integration for smoke, cloth and liquid.

Particles:
OpenCL integration for particles and seperation+fixing of dynamic Hair

Texture Paint:
Paint layers (like MikeW’s addon)
preview of a texture brush on the mesh and the ability to rotate it and set the center
Improve texture management. It’s horrible not to be able to load a texture as brush directly in paint mode and discard it once you’re done.

Rendering:
Proper Lightmap baking
Well, manpower for Cycles to get it feature complete and optimize the performance.
“Liaison GSoCodie” to sit between BF + external renderer devs and work out a API URD.

Modifiers:

A terrain modifier creating a triangulated hexagonal mesh, with a voronoi biome/topology generation algorithm with perlin edgedisplacement to create small islands or the usual fractal methods + heightmap paint in the viewport to create landscapes, moisture function, errosion, add water, dry and most important an adaptive LOD controller where you can drive the LOD e.g. with the camera distance (->replace geometry with pre-baked normalmaps) and control the LOD for the texturemaps.
I think that’d be a very intresting one for Students, looked into myself already and can provide some links and papers.

Rendering/Texturing:

Maybe someone’s intrested in doing something like Photosculpt or Shadermap pro, to generate normal maps and/or geometry from image references.
Another think I looked into myself already, but hard to find informations, it almost seems as if all the normal map generation algorithms are based on edge detection and the rest are undocumented, made up guesstimation algorithms of some sort.

Someone finish/improve the network render, also incorporating distributed multiGPU cycles and distributed tile rendering in the original planned fashion, so that F12 renderings are done distributed on the slaves in tiles and the master you’re working on reports once the rendering is ready and pops it up on confirmation.

Materials/Asset management:
Something like Allegorithmics Substances, where you can store predefined procedural materials, like soil for instance and have sliders to add water or snow, and save out tilable diffuse, normal, displacement, specular and occlusion maps.
The material node system is already there to achieve it.

A server system, maybe SQL based to setup a local service/daemon to handle a libary for models, materials, textures

Animation:
Node based drivers

  • Integration of bullet into viewport. Link (bullet already has opencl support, so that would be cool to include)

  • Polish Bmesh/bmesh tools

  • OpenCL for particles

  • Integrate fracture tools from Phymec Link

So basicly finish/integrate existing projects instead of adding new and fancy features from scratch. adding completely new stuff will only make it harder for blender to be fully stable.

Bullet intergration into the viewport was done back in 2010… but never was committed due to blender being in 2.5 alpha 0

Rendering - motion blur in cycles

Though maybe this is best left to Brecht. Still… as an animator, this is the one thing keeping me from using cycles seriously. (Of course, other people have other priorities, I realize.)

I know, so that’s what i’m proposing to add it.
And in the progress other things can be added as i’m sure time will allow it. (like opencl support)