Bug reproduce list
I only have access to two machines and for some reason some bugs just won't manifest themselves on these. Please try these bugs out and comment your findings to the tracker report!
Blender Foundation Work
Week 1 (1.9 - 3.9)
- 16 bug fixes focusing mostly on particles.
- The remaining particle reports are waiting for reconfirmation or details from submitter and will be also closed soon unless these are provided.
- Tracker is currently free of unassigned bugs in the Physics category.
Next week I'll start looking at assigned but not yet fixed Physics category bugs.
Week 2 (6.9 - 10.9)
- 7 bug fixes around particles, animation system and cloth.
- This week was a bit slow due to moving to a new apartment.
- There are a few mac related particle crashes (listed above) that I can't reproduce, hoping to get people with macs to test them out soon.
Next week I'll focus on Genscher's bugs since he's currently too busy to handle them.
Week 3 (13.9 - 17.9)
- 7 bug fixes around particles and cloth.
- Only few cloth bugs remaining, but smoke simulation bugs will have to wait a while as the code is quite specialized and takes time to get comfortable with.
- Particles were causing a lot of crashes (that I couldn't reproduce) with the SIMD SVBVH raytrace acceleration. A fix was committed, but will have to wait for user tests to see if the fix is working for everybody.
- Found out that there's an issue with the 3d view animation playback that prevents simulations from reseting properly in some cases (one open cloth bug for example). Will keep investigating a possible solution for this.
Next week I'll continue cleaning tracker and look forwards to seeing user feedback from the raytrace acceleration bug fix (should be able to close quite a few reports if it works).
Week 4 (20.9 - 24.9)
- 13 bug fixes in areas like, loopcut, edge slide, transforming f-curves and copy rotation constraint.
- Last weeks SIMD SVBVH crash fix was a success so all related bugs were closed.
- Big accuracy boost to particle collision response.
- Collisions are now much more stable and robust than before.
- For example there should be no more escaping particles and collision stickiness finally works properly.
- A new (mac + ati graphics only?) bug appeared, so please test and report back if your configuration matches the reports at the top of this page!
Bug tracker cleaning for next week too. I'll also keep investigating the animation playback issue mentioned in last week's summary and check if I have time to start learning the inner workings of smoke code (quite many open smoke bugs in the tracker).
Week 5 (27.9 - 1.10)
- 6 Bug fixes focusing on smoke and sequencer
- Finally pointcache is actually usable with the smoke sim, it was quite a mess before!
- Sequencer speed effect is now working a bit more logically and has easier to understand names in ui.
- A lot of sequencer bugs still open, some quite tough ones, some waiting for more user feedback.
Next week I'll continue to work on smoke and sequencer bugs.
Week 6 (4.10 - 8.10)
- 8 bug fixes focusing on particles, smoke, sequencer and f-curves.
- F-Curve cycling works much more consistently now.
- Sequencer can now again be used with a single scene without crashes.
More general bug tracker cleanup next week.
Week 7 (11.10 - 15.10)
- 9 bug fixes (cloth, sequencer, exr color profile...)
- Finally fixed the simulation playback bug I mentioned on week 3!
- Found a few sequencer bugs that are caused by the fact that render is using scene name to distinguish itself. This causes problems when sequencer has the scene it belongs to as a strip. Will have to figure out something to overcome this at some point.
Quite many animation filtering related bugs in tracker so will try to focus on those next week.
Week 8 (18.10 - 22.10)
- 10 bug fixes (mostly sequencer and render)
- Got the sequencer bug I mentioned in last weeks report fixed temporarily. To actually solve the issue the sequence preview renderer needs to be reimplemented using the job system. This is a too big project for a simple bug fix, so currently only OpenGL preview is allowed for the owner scene strip and the issue was moved to the todo-list.
- After a quick look through the animation filtering code and some discussion with Aligorith it was decided that the whole filtering system could use some cleanup codewise. Aligorith thinks he'll hopefully get to this in a couple of weeks time.
Next week will be general tracker work again, unless something with higher priority comes up. I'll be on a substitute teacher gig for the whole week too, so will mostly be online in the evenings.
Week 9 (25.10 - 30.10)
- 11 bug fixes focusing on sequencer
- Like I said in the previous report I was teaching the whole week, so the beginning of the week was quite slow, but Saturday I had the time for a nice concentrated bug hunt!
- I thought I had conquered particle collisions fully in my collisions update from week 4, but it turns out the collisions were now so accurate that floating point inaccuracies start to matter again. This will have to be dealt at some point, but I really don't yet know how.
- The sequencer code had some logic that was quite difficult to grasp, so I simplified it greatly. This should help bug fixing and feature development later on.
- I've started to have this feeling that point cache baking should also be converted into using the job system. The old 2.49ish baking feels quite ancient and doesn't really fit the "always interactive ui" of 2.5. This could also be a good way to learn the job system thoroughly with familiar code, before starting with the sequencer preview render (which needs to start using the job system badly). I'll take this up in #blendercoders once everybody has recovered from the conference.
General tracker work for next week, unless I start making pointcache use the job system.
Week 10 (1.11 - 6.11)
- 12 bug fixes mostly on physics and sequencer
- Particle collisions now take subframes properly into account. Previously any simulation with subframes and moving collision objects failed miserably.
- There is something wrong with the "number cursor" that was used to show pointcache baking progress, so currently baking only shows the platform dependent "busy cursor" and progress is reported in the console. This isn't a critical issue though, as hopefully the job system can be used for physics baking as well after some of the threading issues are sorted out as discussed in this weeks developer meeting.
Next week will be general tracker work again, since the "physicsjob" implementation is on hold until the threading issues are sorted out.
Week 11 (8.11 - 12.11)
- 9 bug fixes on various stuff
- Now particles actually stay cached when there are no changes, don't know how long this bug had been there, but now particles should be much more usable.
- Moved the OpenGL NPOT texture issue to the todo-list as it's not something that can be fixed quickly.
- Cleaned up the todo-list with Nathan quite a bit, but each module owner should really go through their own list of tasks and note clearly what the actual "known issues" are that will be worked on at some point in the future. This way users with a bug can just check the list to see if it's a known issue or not and submit a report based on that.
- Just as a note for future: This has been discussed briefly before, but I really think for example particles and collision need to have a different representation in the modifier stack as they're not actual modifiers, but only indicators of the stack location that should be used for the dynamics. I'll try to make some kind of a proposal about this at some point as I think this could really be communicated to the user better.
General tracker work for next week again.
Week 12 (15.11 - 19.11)
- 9 bug fixes mostly on particles
- SPH fluid particles were really wrong, both in theory and practice, more info here. However now things should be fixed. This fix required some changes to the general particle dynamics loop, but perhaps this was good, since now things are perhaps a bit more clearly implemented in general.
- There's a freaky fluidsim bug around that I can't recreate. Here's a chance for people to help again, so get the blend file from the bug report and add your findings to the report. Especially report your configuration and possible other info if you do experience this bug! Thank you in advance!
More general tracker work for next week unless something else comes up.
Week 13 (22.11 - 26.11)
- 11 bug fixes, mostly on dynamics
- Smoke is now drawn properly in 3d view on some Ati cards that use the R500 chipset.
- Figured out a smoke bug that was opened over a year ago, smoke was being emitted in obstacle cells and it got stuck there.
- Voxeldata texture "extension" option didn't work, so combining multiple smoke simulations as textures in one object was impossible.
Next week I'll work on finding a workaround for an endianness problem in reading pointcaches. Other than that it's usual tracker work.
Week 14 (29.11 - 3.12)
- 5 bug fixes, mostly smoke and point cache related
- Smoke had a lot of problems using pointcache.
- Much of this was due to smoke using two separate pointcaches, one for normal smoke and one for high resolution smoke.
- After some code shuffling smoke now uses only one point cache for all data, and as a result is much more stable and reliable.
- Cloth pinning should also be working again.
- Ton fixed the point cache endianness before I even had proper time to look at it :)
General tracker work for next week too if nothing more important comes up.
Week 15 (6.12 - 10.12)
- 7 bug fixes, mostly on particles
- Halo materials can finally be animated with particle age.
- This was critical missing functionality that worked on 2.49, but not in 2.5.
- This is now implemented through "particle texture coordinates" that map particle age to the texture x-axis and particle trail location to the y-axis.
- Fixed the UI-freeze when closing preference window while animation is playing in the main window.
- At least the windows bug is fixed, but still waiting for confirmation on the related osx bug.
Tracker is starting to look quite nice, so next week I'll start shifting my focus to the todo-list and especially on stuff that used to work in 2.49, but doesn't yet work in 2.5.
Week 16 (13.12 - 18.12)
- 9 bug fixes, mostly on dynamics code
- It seems smoke is getting more and more usable as the bug reports have started being less extreme, yay!
- A big cleanup of pointcache code. No functional changes yet, but the cleaner code makes it much easier to implement new functionality in the future.
- Some work also on fixing particle collision leaks, but no finished product yet.
Next week I'll keep on working on todo items and tracker reports as they come in.
Week 17 (20.12 - 23.12)
- Only 2 bug fixes this week, focusing more on the todo-items.
- Fluidsim particles hadn't been working for who knows how long, now things should be working again.
- Pointcache timeline bar was always one step behind actual data, now the bar is always up to date straight away.
- Current wip:
- Particle collisions have problems with sharp corners, and collisions with rotating objects fail miserably. Rotating collisions are nearly solved now, but still have to figure out a good way to handle sharp corners.
- Hair parting was possible in a awkward way in 2.49 and the hair child controls were a bit lacking on other areas too. An update with improved functionality is nearly finished.
- Extradata and compression support for pointcache. Certain physics simulations (like particles with viscoelastic fluid springs) need to be able to store extradata (like springs between particles) to pointcache so adding this functionality now. This can later be used by other physics simulations too. I've also had great results with data compression for disk caches. Smoke uses compression already, but this functionality will soon be extended to all cache types. This too will be finished very soon.
Some new tracker reports appeared over Christmas, so will deal with those next week as well as continue working on the todo items.
Week 18 (27.12 - 2.1)
- No bug fixes other than my own "undo with physics and timeline open" fiasco that got included in 2.56 release, ouch!
- Finally got the pointcache extradata and compression support ready and committed. I'll be making a short description of the changes soon.
- A new bug that I can't reproduce appeared, so please check the report and see if you can get it to crash!
The hair parting and related stuff is final tweaks away from being done, so my main focus this week will be on getting particle collisions correct once and for all. I'll also keep a tight watch on the tracker for any problems with the new pointcache code, so that a 2.56a can be released asap!
Week 19 (3.1 - 9.1)
- 9 bug fixes on particles and point cache.
- Viscoelastic fluid particles patch by Stephen Whitehorn is now in trunk.
- Hair parting (& some other small but very useful additions) is also now possible for child particles.
- code.blender.org blog post about point cache.
The new collision code still has some problems, but I'll keep on working on it the next week when ever there's time for it.
Week 20 (10.1 - 15.1)
- 7 bug fixes on particles
- Found out yet another bug with rendering and interactive ui. Making a separate copy of all data for render seems to be a good fix for this.
- Some progress on better collisions again.
Campbell has provided me with some clang errors in particles code, so I'll go through those next week. I'll also check all of the physics regression files to see if any improvements need to be made for backwards compatibility.
Week 21 (17.1 - 23.1)
- 6 bug fixes mostly on particles
- Reorganized the physics tab in ui to only show the panels that are actually used.
- The particle regression files didn't work properly as they were using old format memory cache, which isn't supported anymore.
- Found out that point caches and library linking is really an undefined case, which needs to be solved. First of all there's no proper ui to handle the cases and how to deal with proxies etc is unknown at this point.
- The current preset system can't really be used nicely for particles as the number of settings that need to be stored is quite large. Either the current preset system needs to become a bit more advanced or some other system must be implemented if particles are to have preset settings.
Didn't have time for Campbell's clang errors this week so will check on them next week. I'll also try to come up with a good design for library linked point caches and presets for particles.
Week 22 (24.1 - 28.1)
- 6 bug fixes on particles and sequencer
- Sequencer caching wasn't always copying the image buffer to cache, so in some cases effects were being applied twice.
- Non-animated object data wasn't updated properly on load in background mode.
- Finally got around checking the clang errors in particles, and none of them were actual bugs!
- Particles and dupliobjects really don't mix well currently. The general state of the dupliobject/group code is starting to look quite messy, so perhaps something should be done about it in general before trying to fix particles.
- Library linking point caches is not a trivial thing, and it can't be just "solved" easily without some rethingking of the whole linking/proxy business.
This week more tracker duty if nothing more pressing comes up.
Week 23 (31.1 - 6.2)
- only 3 actual bug fixes
- Particles in dupligroups were mostly drawn ok in 3d view, but in most cases not rendered at all. Now almost every case should work with the exception of metaballs (too ancient code to fix easily :) There is now also a test file "particle_dupligroups.blend" in the test suite to check that particles stay working in dupligroups!
- Particles with grid distribution kept every particle in the grid even if they weren't used. Now all the non-used particles are deleted after the distribution giving huge potential memory savings. For example for a flat text emitter from 1.5gb to 60mb! The memory is still needed while creating the particles, but released straight after.
- Fixed an ancient (2006) bug in the rendering of successive total internal reflections. Now even fiber optics are possible with just the internal renderer!
- Nearly finished a long standing todo-item of textures effecting particle properties.
There seems to be fewer and fewer particle/physics bugs in the tracker so next week I'll check on some other bugs and work on the particles todo-items.
Week 24 (7.2 - 13.2)
- 5 bug fixes mostly on particles
- Texture context buttons: previously texture context (material, world, brush etc.) was chosen by going from the "owner" tab to the texture tab. Now the context can be chosen directly from a menu button.
- Particle textures: Particle properties can once again be modified with textures, which are not linked to the material as in 2.4x, but to the actual particle settings.
- Simplification of hair ui & cleanup/reorganization for billboards and force fields ui.
- Started work on making fluid particle workflow more user friendly, but didn't finish yet.
Next week I'll try to finish the fluid particle refactoring and otherwise focus on other than particle bugs, which have gotten a lot of attention from me recently.
Week 25 (14.2 - 18.2)
- 7 bug fixes again mostly on particles, funny how there always seem be some after all
- Textures and particle settings can now be pinned properly.
- Textures can now be added straight from the modifiers that use textures.
- Continued work on fluid particles, still not finished, but perhaps ready next week.
Next week the focus will again be on general bug tracker work.
Week 26 (21.2 - 25.2)
- 7 bug fixes
- Rewrote explode modifier edge split (now called edge cut) to handle all possible cases and uv's too.
- Fluid particles refactoring is nearly ready. Will commit next week.
General bug tracker work for next week too unless something other comes up.
Modifier Stack proposal
There's a good proposal in my opinion about a better and cleaner modifier stack workflow in here, but I think it's missing one crucial thing. There should be a clear distinction in the stack for what "modifiers" actually are modifiers and what aren't. For example particles and collisions aren't really modifiers at all, since they don't modify the mesh in any way. They merely store a copy of the mesh in the modifier stack from the location specified by their "modifier's" location so that the actual dynamics calculations can use a certain mesh.
- There should be a clear indication in the stack that particles are actually a "non-modifier". This could be achieved with a different drawing style or for example indenting.
- Particles need to have the mesh data for emission (entry in the modifier stack of the emitter), but shouldn't actually be necessary for the emitter object to be the "owner" of the particles.
- This will become more apparent if/when phonybone's nodal particles are merged into trunk, but this would be a good separation to make even before that.
- At least every particle system doesn't need a separate entry in the modifier stack, unless there's a reason for it, like using particles with an explode modifier and then emitting particles from the exploded pieces.
- Adding a "particle modifier" shouldn't directly add a particle system to the object, but only add a possible "emission source" that could be used for any particle system that's added to the object (or possibly to any other object).
- Hair is always connected to the emitter object, but none the less each hair system doesn't need a separate entry in the modifier stack unless there's a specific need for it.
- Collision modifier is by definition tied to the object and there can only be a single instance of it, so there's no real problem here.
- The only thing that would be needed is a clear indication of it's "non-modifier" nature.
- This also applies to the surface modifier which added to the stack when certain effector settings are used.
This is a general wip list of ideas about what's still wrong/badly implemented in Blender physics. Hopefully these ideas will mature into something that can be worked on at some point.
- Each solver is currently totally independent from eachother
- No physical way of definining air flow/friction
- No physical way of definining contact friction
- No unified way to see all dynamic systems and their relations
- Controlling every system's baking from a central location would be very nice to have too
- There is a unit system now, but do the simulations really use it properly?