h1

A correction of Verlet and a test

December 2, 2009

Hi all :)

Thanks to Mcreamsurfer’s feedback I was able to correct the bug that prevented the particle emittor with the verlet integrator from being correctly animated, now it is solved. I have sent the patch to Jahka , just be patient because he is currently busy.

I’ve also made some tests about the nice particle system feature of fading in time for cached simulations: It allows to see the flowlines :)

Cheers

h1

Verlet now in trunk :)

November 26, 2009

Hi all :)

The Verlet integrator patch was just commited by Jahka , so it is now in trunk :)
thanks to him who kindly review and integrate my patches.
I’m very happy for that :)

Cheers Farsthary

h1

Verlet Integrator

November 21, 2009

Hi all :)

Currently the particle system support 3 integrators types (in english integrators are what actually advance particles in time)
and for many users that´s the kind of options that fall under the I-always-will-use-the-default-value category,
and while for many set ups different integrators provide very similar results, in others they could make the difference.

The simplest integrator, Euler, is very fast but not very accurate, internally Blender performs only one cycle of some calculations.

The second integrator, Midpoint , is sligthly slower because it performs 2 cycles but is more accurate than Euler and is the default integrator.

And the third , RK4 (Runge-Kutta) , as you may guess is the slowest and more accurate of them, and performs 4 cycles of calculations in Blender

The good news here is that I have found another integrator type that is as fast as the Euler integrator (the fastest) since it requires only one cycle of calculations and is more accurate than the Midpoint even, the error is of fourth order: The Verlet integrator  http://en.wikipedia.org/wiki/Verlet_integration#Basic_Verlet
have several advantages over the others and is very stable and fast, and gives realistic results.
with many particles interacting each others the Verlet integrator clearly shows the speed boost even over the Euler integrator.

the hand made patch is at http://www.pasteall.org/9364/diff

I have implemented it in Blender seamlessly and I suggest it as the default integrator, the previous integrators suffer from an increase of energy in time, note how the amplitude of each bounce is biger than the others in the previos integrators while in the Verlet is uniform as should behave in a conservative enviroment (no friction,damping,etc).

It is very easy to implement in Blender and is a small step toward improvement, hope you like it
Cheers Farsthary

h1

Cool effects

November 9, 2009

Hi all :)

Since SPH particles are , well, just particles, they can seemlessly be integrated with the whole dynamic system, providing an incredible range of particle FX’s, here for example I show you some simple yet beautiful cases:

the previous videos show SPH particles rendered with pointdensity textures (volumetrics)

And this one shows an interesting effect with instanced particles and some force fields with no gravity

Hope you like them
Cheers Farsthary :)

h1

A sudden Hurricane and a talk about the weather

November 9, 2009

hurricane

Wow!

I was happy that this season we didn’t have any hurricane over Cuba, but I guess this was too much to ask :)
This weekend we had a little hurricane: IDA, that reached the 2nd cathegory (2 of 5)
nothing compared to last year season where we had 3 hurricanes of the 4th and 5th cathegory that put on the knees my already devastated country. And as a curiosity IDA has become an extratropical hurricane, an invernal one.
Nothing really happens this time, I was just locked in my home the whole weekend, and luckily without electricity blackouts so I could continue my projects :)

h1

The right move

November 5, 2009

Hi all :)

2

An open source developer should not have any problem in dropping a project for joining another if the second one promises better features, as working in two seperate projects will only make things more difficult and slow and at the end necessarily one of the two solutions has to be dropped. The good thing about being open source is that this is not a race among devs, this is a collaborative work :)
So I didn’t have to think twice to make the switch once I had contacted Stephen and reviewed his implementation of Particle Based viscoelastic fluid simulation (that is also an SPH method) based on several reasons:

It’s much more stable
It’s more artist friendly
It avoids duplicate efforts
It speeds up the development

This is not the first time something similar happens to me :) , the first was Volumetrics, then Photon mapping (which is currently on hold until some physically correct material system gets added or some future decisions are being made) and now SPH particles so I have experienced that ;)

We are currently working togeither (also with the help of Jahka) to deliver very soon a testing build.

Cheers Farsthary

h1

New Blog!

November 1, 2009

Hi, this is -again- a friend of Farsthary! :)

As Farsthary made last week a “little” excursion in the beautiful particle world of Lord Jahka (sorry if this sounds cheesy…), I thought you would be interested by some pieces of information:

- Jahka has kindly accepted to review his patch, so stay tuned to Jahka’s blog :)

- Stephen Whitehorn aka chickencoop (an early supporter of Farsthary) recently started his blog about other amazing particle VFXs! Kudos to him, we wish him a lot of success!

All progresses relative to the particles system are managed by Jahka, who directly adds them to the trunk. This means that if Jahka speaks about it on his blog, you can find the new tools a few days later in the fresh 2.5 builds from Graphicall (thank again to them).

Regards

p.s: sorry about the troubles with the new wordpress layout (problem under firefox for the comments, strange formating..), but this is one of the rare thing that Farsthary directly manages, so I don’t want to “steal” that to him by doing it without his authorization… so please wait a few days so that he corrects this himself..  Currently, if you want to let or read  a comment, you have to go to the previous post, then click “next”..

h1

The Joy of creation

October 26, 2009

Hi all :)

Wow! every time I start a new project I get some comments of concern from the blender community about myself spreading my code time across them :) . I have started many projects since I got involved in Blender development:
Volumetrics, a smoke simulator, GI pathtracing (unbiased), GI photonmapping (biased), Bloxel (Blender voxel system), a small patch for using object groups as a larger manager and now SPH particles, among them currently only Volumetrics have gotten into trunk because Matt Ebb got involved, rewrote everything and put his skills on it (thanks to him). Luckily Daniel Genrich has also integrated the smoke simulator of Niels Thuerey independently.

I have stated many times that my main approach to Blender is as a CATALYST: Due to my internet issues (low bandwith/speed: believe me I don’t know what web videos are :( , working near isolated, no access to IRC chats , live talks, etc. ), I could not directly commit to the blender sources or have my own branches. Instead, I have to rely on core Blender devs (Like Matt has kindly done with volumetrics) to review and commit my code. Sadly one of the hardest stuffs for a programmer is reviewing other’s code; that’s perhaps why in the Open source world there’re so many redundant applications (millions of sound players,text editors,3d apps, etc, etc) many of them of low quality/unfinished simply because it’s often easier to write everything from scratch than to dive into existing projects (you have to learn its arcanes) and focus development on them (like blender have succesfully done attracting 3d devs). What is the best way of learning a foreign language? it’s not to pay a teacher or watch lots of courses, no, the best way is to get thrown in that country where that language is native and you must learn it or die : I bet in a matter of months you will speak very fluently that language ;) . The best way for me to master Blender is to tackle projects in many fields of Blender that will force me to go to different areas of its source code. This will allow me to build a global idea of Blender inner working, that’s something you simply won’t get reading the whole source code even if you have the lifetime for that, I could focus on one project at a time but if I had done that I’m sure I would have quitted blender dev long time ago: is simply boring. I’m not a coding machine, in order to move on I need to feel JOY about what I’m doing. And what motivates me the most? Encouraging comments, positive reviews/feedback, someone using/needing what I’m doing, support , resources and a place to render my creativity :) .

With every new project I tackle I learn new skills that are very difficult to get when working alone. I try as hard as I can to deliver a good PROTOTYPE in order to attract the attention of a core dev; I can not say: -”!Hey, integrate this please for tomorrow!”.

My projects are unfinished prototypes? non standard? delivererd too early? I’m not hiding that, actually I’m proud of that, for me they have lasted an eternity due to the large amount of new knowledge I had to gather for doing them (more than in college), but I’m still a newbie in Blender development! and in graphics technologies and in open source! I started blender programming two years ago (April 2008): for some peoples it can be slow, but this is my rate of learning skills nearly alone, and also in order to make the life or the reviewer easier the code should remain like that, a functional prototype. In order to master one field of knowledge a person have to spend an average of 10 years, I WISH to became a Blender pro and if life allows me I’m willing to pay that price in time, because many things that a blender user/artist forgot is that a developer DOES pay a price for it (as well as an artist do, of course).

I don’t have another blender dev in miles surrounding me, sadly, so I can not walk to someone else place and say: -”Hey! how do you add this button? How do I access this data from that?”, and lots of other minimal questions. Sure, there’s the bf-commiter list, but I can not flood it and bother a BUSY blender dev with them (my only way of communication), I simply have to do my homework and learn it the hard way: try and error, and this takes time.

I hope to have some days power over the Blender sources, creating my own branches, reviewing others patches and adding new functionalities without constant assistance of other core devs, in other words becoming myself a core dev, but I simply will have to EARN that, I will be the first one to forbid myself to apply for that until I consider myself skilled enough to tackle TO THE END whatever project I choose.

But I’m not worried, I trust in myself and know that I simply need time and plenty of MOTIVATION and JOY about what I’m doing. Not long ago, before I started the photon mapping stuff (which happen at the same time as Matt and who has allowed me to reuse part of his code) I was enjoying deep creativity but right after a motivational crisis that I have only shared with my closest friends. Indeed, while Matt was polishing Volumetrics, I saw in the horizon its completion with less and less for me to contribute in. That was good for Blender but bad for me because I have a DEEP CREATIVITY NECESSITY that I need to keep constantly fed otherwise I risk emotional collapse. (go ahead, call a doctor, I’m crazy ;) )

So you know now my secret, I really NEED to create stuffs, as soon as what’s left for finishing a project is the “plumber job” of integrating it into Blender I start to get demotivated: not saying I will not finish it, it’s just that I need to jump elsewhere in order to gather new strengths and skills that will allow me to comeback and ease that pain later. One of the best things that have happen in my life was using blender as a dev, because it will keep my demon busy for the comming years ;) . Since my childhood I have never gotten enough by watching TV, reading, playing. I
used to write books, draw, paint (on canvas), sculpt, make chemical experiments, animate with the corner of my books (sorry, no computer back then), and many, many small things that I sometimes miss :)

I think my main contribution is not really these patches, but the HOPE they bring: I’m not just poking in a forum saying: -”I wish blender have implemented an integrated antivirus because it will be helpfull for….”
NO, I’m showing HOW blender will LOOK LIKE and BEHAVE with that feature, I’m saying : “look at this, this is very DOABLE and might be used as a REFERENCE or simply a HINT of where to start or don’t start ;) ! “the first thing an open source dev does before start a project is to search for prevously existent attempts, and the more they find, the more probable he/she success will be (aside from his/her skills of course) so by now, when a dev will google for volumetrics, pathtracing, photonmapping, smoke and SPH in Blender,  Google will not answer only forums entries ;) .
Sure, many of those projects can eventually be made without me as nobody is a God here, but I’m sure volumetrics would have been pushed further in the future if I had not started “True Volumetrics…”, and also my first smoke
simulations rendered in Blender have touched many peoples hearts and contributed a bit on making Daniel’s smoke to come true. GI has also shaken some minds about Render Internal development much more than years of asking for it in forums, the Pathtracer project contribute a bit to revive the interest in Luxrender, and what have happened with Luxrender for me? It’s an awesome project, but so complete at the point I planned to join it that it simply killed my motivation (Second deeper emotional crisis). For joining it I have to do only buggs correction jobs, that is OK and very preciated and needed but simply don’t take my creativity factor in that equation :(   I will come back to it when I get enough skills to tackle a big project in addition to bugfixing.

And last but not least, something that many people haven’t realized: Every submodule of Blender is ALSO an open source project and is not only the full responsability of the main dev of that area but of every interested dev: the
more devs working on a module, the better it will get, and I have always been open in my projects: I welcome every dev who want to take it and improve it. Help me, show me, teach me and I will do my part :)
Don’t worry, I don’t have a deadline and while those projects take time before completion, I keep making the community dreaming but not an ethereal dream, a very real one that will eventually come true: I’m working hard to become a pro.

Cheers  Farsthary

h1

Development surprise ;)

October 24, 2009

TADAAAAN! Smoothed Particle Hydrodynamics (SPH) for Blender particle system
(True Fluid Particles) :) !

Hi everyone :)

Long time without posting huh? ;) well , I have prepared a surprise , I have been making recently some research in the area of SPH simulators (don´t blame me, I found this while I was gathering resources for Bloxel and since its development is shorter than Bloxel I decided not keep the community waiting ;) ) and came up with the first draft of SPH physiscs for the powerful Blender Particle System from Janne Karhu (aka Jahka).

For the ones who think that SPH means something related to the stars I have to tell that in some way you are right: SPH was firstly developed in 1977 for simulating astrophysical processes . The fundamentals of the SPH theory are the interpolation theory, the units in the SPH method represent a region in space and not a real particle, thus field variables (pressure,viscosity,velocity,color, etc) are found by averaging, or smoothing the field variables over a region of interest. SPH is often described as a rugged, robust technique that could easily be extended to N dimensions while Eulerian approaches (Grid based methods) suffer from the curse of dimensionality (computation grows exponentially with dimensions).

Pros:

• Arbitrary scene set ups , no need to define a domain.
• Intuitive and artist friendly.
• Possibility to handle arbitrary complex interactions like hetero-fluids simulations, and unexpected deformations.
• Robust, adaptable and extensible.
• Good results even with a low number of particles.
• Represents a natural extension to the current Blender particle system.
• Excellent for some crazy fluid like particle FX´s .
• Represents one of the most versatile and flexible fluid simulator type.
• Does not depend on boundary conditions.

Cons:

Achieving the same level of accuracy as a grid based simulator like El’beem requires a high number of particles.

Todo

• Improving its speed and stability (particle KD-tree?)
Jahka’s review and possible integration in his system?

(reviewing requires time, so don’t forget to support him and to mention this patch if you want to motivate him ;) )

This new method is not a replacement for the Blender El´beem fluid simulator, it’s just a complement and a natural extention to the current particle system, like many other packages have implemented (Softimage, Houdini, Realflow, etc.)

I plan to release the patch for next week for further development and review, also the GUI is not finished and some design considerations should be made, this patch is nearly ready to go and it will not require any traumatic change in Blender so will be safe to commit.

Hope you like it

Farsthary

h1

Volumetrics now support full shadowing

October 24, 2009

Hi all!

Though are not quite news, I thougth it worth post for it.
Matt Ebb (that is now a full time Blender dev at BF) have recently added full shadow support for volumetrics, at my opinion that was the final milestone needed to make it production ready, so currently volumetrics are an entire suite for handling participating media for artist :)
Of course, with time it will evolve and get better and better.

Cheers to all Farsthary

h1

Blender 2.5 – tutorials

October 21, 2009

Hi, this is a friend of Farsthary.

Although the volumetric renderer is now maintained/optimized only by the great Matt Ebb (aka Broken) with some assistance from Alfredo de Greef (aka Eeshlo), I thought it would be interesting for the supporters of the previous blog “True Volumetrics in Blender” to have some news from time to time, so…
* If you follow Matt’s blog, you will notice that he has implemented the interaction between external shadows and volumetrics. Hence, for any volumetric-related stuff, follow his blog by now instead of this one.

* Nick  (aka NRK) has kindly recorded and shared some volumetric tutorials with Blender 2.5 (development version, official beta version to come in one month, grab a build here)

Volumetric + Nodes

Point density

thanks to him!

P.S: If you follow Daniel’s Blog, you can only be amazed by his additions: smoke and fire (in the Blender 2.5 development build) can now interact with force fields! Well, he has done in a few months an incredible work, which will save a lot of time to the Durian’s devs for other cool features!

You can also notice another fund-raiser. Honestly, he is a modest guy, so even if the previous fundraiser for buying his new computer (except the graphic card: he currently uses the integrated and low-end one) went up to 200%, it was below 500$ (see “Hall of Fame”) so he did not buy very expensive hardware. So, this new fundraiser is for him to buy a powerful graphic card compliant with the opencl standard.

What does it mean? Well, opencl is a new programming language which allows to make algorithms run on various GPU (recent nvidia and ati graphic cards). For the smoke and fire simulator, this means that he could develop with a new graphic card a way quicker simulator thank to the new graphic card computing power. (new graphic cards can outperform CPU for heavily parallel calculations like those involved in the smoke/fire simulator –> realtime previzualisation?). So every blender user who has a recent graphic card and want a ultra-fast simulator has a potential answer…

By the way, Farsthary will also investigate opencl programming, I just sent him recent drivers + programming documentation.

h1

Bloxel (Blender Voxel system) roadmap

October 5, 2009

Hi all :)

This is a first draft of a todo for the Bloxel project (Blender Voxel system as has being suggested in a joke by VIBrunazo , but is very cool :)
Note that this roadmap could and possibly will change over time according to priorities but is a rough sketch of what I will
aim at this project, quite ambitiuos! also I will need to leverage my skills in the road :) and make pauses
for research/learning and continue development of others projects.

Iteration 1: Keep things simple ————————

.Add a new object type: VoxelObject (VO) into Blender
.Implement VoxelObject as an array of floats
.basic drawtype for testing/experimenting
.saving/loading into blends and/or external files (VO’s could be very very big)

.Implement a new ‘Voxel Sculpt’ mode for VO´s
.basic sculpting tools
.basic sculpt drawtype
.marching cubes for meshing/sculp drawtype

(First public release)

Iteration 2: Wellcome flexibility ———————————–

.Generalize the VoxelObject type to allow any data structure as VO’s
.Generalize all the previous defined methods and the new ones that will be added
.Replicate the previous funtionality
.basic meshing/triangulation/voxelization
.basic unification with voxeldata texture and smoke simulator.

.Implement a new ‘Voxel Paint’ mode for VO’s
.basic ‘Magic Paint’ feature, directly painting/editing VO’s (smoke,temperature,ligth cache,etc painting)

(Second public release)

Iteration 3: Warming engines ————————-

.Add more production ready data structures as VO’s
.Implement possibly Octree VO,BVH VO,KDtree VO, BTree VO
.Add more draw types
.for scalar VO’s
.iso-surfaces (solids)
.volumetrics (smoke like)
.for vectors VO’s
.flow lines/flow vectors/etc.

(Third public release) Candidate for new Branch

Iteration 4: Complication things——————————-

.Further refining the whole project
.improving memory management of VO’s
.Out of core VO’s management (VO’s larger than aviable RAM)
.Implement a complete set of sculpting tools
.Implement a complete set of painting tools
.refine all basic implementation into the advanced ones

Iteration 5: Retopo tools——————————–
.Implement basic retopology tools
.Implement advanced retopo tools

In this huge task I hope to rely on the help of the restless blender devs,
and the support of the community. I think both are the most important key
to the project since there’s no way I could accomplish that alone :) ,
I hope also God and life give me strengh, knowledge and oportunities to carry that task.

Cheers to all Farsthary

h1

New page: Brainstorming

September 21, 2009

This new page will allow me to have centralized the users requests, link to resources and original ideas/suggestions about my current projects that I know many of you have. Is like having a big pending todo list that without making promess, could help me to improve my projects. :P

http://farsthary.wordpress.com/brainstorming/

Cheers to all :)

h1

Slow learning steps

September 21, 2009

Hi all :)
I’m reloaded again :) , at work I have a new email and a new internet account so no more fear of being offline for long times :) , though not blazing fast, will allow me to continue working for Blender for several years :)
my new email is raulf@info.upr.edu.cu

Regarding the Voxel Sculpting project, I’m very happy because I have to learn a lot from other areas like Blender UI and event system that at the end will give me deeper understanding of the Blender arquitecture. Joe is helping me a lot with my silly questions.
I still have to learn how to access from the UI to the parts of the new Object I have created, but things start to look ok. I have to point out that this screens don’t show the final look of the voxel objects in Blender. this is only an intermediate representation for debugging/experimenting. I plan to implement several drawtypes depending on the nature of the voxel object: scalars, vectors , etc.

Provisional voxel object representation

Provisional voxel object representation

h1

September 11, 2009

Hi :)

I recently started to gather information and research in order to implement for Blender some system for Voxel sculting, or free sculpting like 3D Coat has brought to light (though the term is nothing new). Currently I´m in very early stages so don´t expect to much for now, I just want to inform that I´m on the road and open to collaboration with other devs and of course any help from the community is always very appreciated and needed.

For this project volumetrics were an incredible experience (thanks to Matt Ebb and everyone) and in fact the voxel system I plan to implement (in a similar way that the GSOC 2006 Voxel proposal for Blender) should integrate/unify at final stages all the voxel data layout in Blender, for rendering (voxeldata textures) and simulation (smoke/fire) and provide means for handling very big datasets, potentially unlimited size (papers on this topic please!).

I want to thank also Joe for his help that could save me days of work figure out how to integrate my ideas in Blender :) One cool thing about this project is that it has made me learn OpenGL and Blender viewport programming that I where avoiding till now because I thougth It was difficult, but not at all! ;) In fact is very fun!

This project, like True volumetrics is very ambitious, so don´t expect it over nigth, also I have started to work now oficially in my University in an Education Technology group (making educational materials, multimedias,web, games, several resources and you know I will insert Blender there ;) ) also I have pending other projects like integrating a true GI solution for Blender that will require synchronization with current projects like Raytrace optimizations and Matt Ebb plans on it.

But just like I said when I started developing volumetrics, I have the will and the interest to implement this for Blender.

Cheers

Pantallazo