I would love to demonstrate Archimedes Law in Blender. I understood that it is not possible to have an object float in a fluid because the Blender fluid does not exert a force on an object.

However, is it possible to do this with a particle fluid? Do particles exert a force on an object? Rigid body? Obstacle?

  • 2
    $\begingroup$ It's not clear to me what you mean when you write "demonstrate Archimedes law". Do you merely want to illustrate the change in the level of the surface of the virtual fluid caused by splacing the virtual object into it? But the problem, I think, is that to calculate the change in the level of fluid, you need the density of of the object, and the density of the fluid, and Blender in and of itself does not track that. It does seem to me that you could create a "game", wherein you could get user input of the densities, and use those figures to calculate the displacement. $\endgroup$ – brasshat Mar 3 '17 at 0:34
  • 4
    $\begingroup$ It's semi possible with Blender Molecular addon. You can create two Particles System, one as a water (with estimated water density), and second one as the obstacle (with custom low density). Molecular Addon allow to set density. I've managed to create simple ball drop to the tube filled with water where ball is floating covered in a half. You can change and animate density of a obstacle, but you can't manipulate it directly. It's still an particle. $\endgroup$ – cgslav Mar 3 '17 at 1:14
  • 8
    $\begingroup$ This is a result: imgur.com/CwVl8BP $\endgroup$ – cgslav Mar 3 '17 at 1:24
  • $\begingroup$ My idea was to demonstrate Archimedes law: the opward force a fluid exerts on an object is equal to the weight of the displaced fluid. The demo by LukeD seems to demonstrate this, the floating is essential. Im not completely sure how to make this but I will try. So the floating object is a particle system with one particle? And particle systems interact with one another but not with other objects? Isnt that weird? $\endgroup$ – michiel perdeck Mar 4 '17 at 9:58

This is possible with the very popular and amazing molecular addon by Jean-Francois Gallant:


It builds on the Blender particle system, but normally, particles are not real objects, they are only for visual representation, like sparks or rain drops, or smoke, where it is not noticed when they pass through one another.

The molecular addon makes each particle a real object and can adds bonds with others (which act like springs or shock absorbers), which can be cut, when the links become overstressed to a definable point and thus tear or can recombine together again when they touch (simulation of stickiness)

This video shows a summary what is possible with this, showing all the different facets: https://www.youtube.com/watch?v=x8Fo2slT2WA

I find especially the rope example mind blowing, how many small particles can be "woven" into strings, also this method allows for objects to have volume which can be broken open and spill.

This is a further example of this, how many particles can become fluid like:


You just create a particle system and then have an extra settings section

where you can define all these parameters, there are quite a few tutorials on youtube.

As you can define specific weight of the particle in kg per meter cubed, you could demonstrate the Archimedes principle very nicely by using a lower density particle system and then drop a higher density one into it, seeing the displacement.

The only drawback that the addon has is that it does not support GPU acceleration and neither uses all your CPU cores. It is restricted in speed due to this, I don't understand the reasons exactly, but the author told me that these calculations cannot be parallelized, a general problem in physics simulations, since one calculation depends on the result of the one that came before it. CPUs with high individual core speeds (even through overclocking) benefit this addon greatly.

I would recommend that you start with a low particle count for initial simulation and then raise the amount for the final calculation.

|improve this answer|||||

If this is for teaching purposes, you could, instead, illustrate the following thought experiment:

  1. From a perfectly accurate spring scale, dangle an infinitely thin string. The scale shows zero.
  2. Dip the string into a glass of water.The scale still shows zero.
  3. From infinitely thin, weightless material, construct a 1cm cubed box attached to the end of the string, underwater. The scale still shows zero.
  4. Lower the glass. the scale now shows 1 gram.

The upward force on the box of water, while it was submerged, must have been 1 gram.

This, IMO, has the advantage of showing why the law applies, rather than simply demonstrating that Blender can simulate it.

|improve this answer|||||
  • $\begingroup$ A string has tensile strength but no compressive strength. I suggest using a heavy steel object directly attached to the scale and slowlydip that into water. The density wouldn't really matter since the scale would go 1gram down for every cm3 below water. $\endgroup$ – AzulShiva May 12 '17 at 11:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.