Boats. Waterfalls and geysers. Swimming and diving. Flowing rivers and deep pools. With version 1.0 of ROBLOX’s buoyancy and water physics, carefully crafted and researched by our Physics Team, these things are not only possible, but also realistic. We’re featuring ROBLOX Physics Engineers Kevin He and Tyler Mullen today, as they explain the latest iteration of buoyancy (see the original here) and its implementation in ROBLOX.
Water is more than a texture in ROBLOX. It has its own unique properties and behaviors, all of which integrate into ROBLOX’s existing physics engine. Objects float on water surfaces, bob up and down with pressure changes and sink if they’re too dense. Water flows, pushing objects along its path, with user-defined directions and velocity. Players dive underwater and swim the depths or wade on the surface.
The physics of water are rooted in buoyancy – the tendency of a body to float or to rise when submerged in a fluid, according to the Merriam-Webster dictionary.
Water physics in action: A working water wheel in ROBLOX.
Buoyancy is a simple concept, but challenging to simulate in a virtual world. We approached the challenge with a few goals in mind. At a high level, we focused on clean architecture so the behavior of objects and characters in water looks and feels like a natural extension of ROBLOX’s existing physics. This included integrating buoyancy into our standard contact pipeline. We actually consider a body of water a special physics object and apply buoyancy to floating objects via the contact (or collision) between them and the water. This way, the collision between water and floater, floater and floater, and floater and sunken objects are all simulated in a unified engine.
Our architecture also unifies all the forces – buoyancy, water viscosity (drag) force, water-flow force, gravity, contact forces and other external forces. The movement of a floating object is a net result of all these forces on a rigid body following Newtonian laws. That’s why you’ll see underwater collision happening in the same, natural way it does on land.
This video demos player control in and out of water, under water and on floating objects.
We also strived to implement buoyancy and water physics with a high level of detail and accuracy. We came up with a couple solutions based on the type of object we’re simulating.
Cubes and wedges in water
Think about dropping a cube into water. After gravity has submerged it in water, it’s likely going to tumble and re-orient itself as the water’s buoyancy forces it back to the surface. In ROBLOX, we efficiently and elegantly simulate that re-orientation by dividing the voxel cube into eight segments, each of which has its own positional data. By dividing up the force of buoyancy, voxel objects (cubes, wedges and corner wedges) orient themselves properly and respond to changes in force – a character standing on one corner, for example – with realism. We also apply water viscosity force against both linear and rotational velocity to dampen the motion and achieve a good, float-y feel.
Spheres and cylinders in water
Now, think about dropping a ball (or sphere) into water. Because the smallest point of the ball enters the water first, it gradually decelerates until the buoyancy force shoots it back up. We don’t need to worry about how the ball re-orients itself, but we do need to know how much of the sphere is below water.
If x is the percentage of the sphere’s height that is under water, then the percentage of the sphere’s volume that is submerged is:
And the buoyancy is weight of object × percentage of volume submerged ÷ SPECIFIC GRAVITY.
Cylinders are the trickiest of all. When cylinders are floating straight up and down, they should act like cubes. When cylinders are floating completely horizontally, they should act more like spheres. The trick, for cylinders, is to blend the two approaches.
If x is the percentage of the horizontal cylinder that is underwater, then the percentage of the cylinder’s volume that is submerged is:
Again, the buoyancy is weight of object × percentage of volume submerged ÷ SPECIFIC GRAVITY.
This blend of the two approaches allows cylinders to behave realistically in water.
Our final goal was to allow a wide variety of practical applications through water and buoyancy. You’ve already seen how objects behave in water, but we’ve also developed swimming and diving states that let players jump in and out of water, and swim downward to explore the depths. Users will be able to construct realistic boats real boats for their games and set up water-based platforming courses. With flowing water, your landscapes and architecture will benefit from waterfalls, geysers, whirlpools and streams.
There’s a lot of new ground – or, should I say, water – to explore.
Buoyancy in action: Boating in ROBLOX.




I saw the article before and I loved it, and I still love it! I hope this will be in roblox soon.
My suggestion for next project: WEATHER in Roblox, TEMPERATURE, NEW WALKING MOVEMENT, and NBC PACKAGES.
Epic i can imagin my self dressed like a fish/whale/seal/ dolfin and swiming and doing tricks in water. xD
I don’t want the water to be terrain, or else it will be useless for many of the expert builders across ROBLOX. I personally prefer just the fake water brick over this currently.
A couple of days ago I was needing water. This is so cool, there are so many improvements since the last post.
Nice one roblox, I’ve been hoping for this for a while now.
Cool! I can imagine my ROBLOXian diving in water, coming out and diving back in. All we need now are physics that look like water is still on our ROBLOXian
and splash
and water shaping like terrain but could use a little more for water then terrain has
well there’s nothing below the water just the top texture.
That would cause too much lag.
IKR.
Very interesting. You ROBLOX Admins have heard of M.I.N.E.C.R.A.F.T? In it, when you go under water, a gauge will appear over your health meter. It tells you how much oxygen you have until you die.I also think marine life should be involved and they die on land. Submarines seem cool as well. ROBLOX is simply the best game ever. It contains all categories, and you can design your own games that you seem to favor. M.I.N.E.C.R.A.F.T is okaaaay, but seriously, ROBLOX allows you to create any game with ease PLUS! You are moderated so no people can come in games with profanity like M.I.N.E.C.R.A.F.T. I have got at least 5 friends to join ROBLOX. I’m glad you’re working hard to make my favorite game better. Thank you ROBLOX. :)
P.S. Is Ipad ROBLOX going to be free or not? Also, can you distribute the estimated year of release? Sorry for the bother but, also will the game itself be updated onto the app or a separate app? On more thing, I think the Catalog and New games should be added to app. :3 bye! You all rule. xpthreethousand@yahoo.com is my e-mail :3. I Might send you guys loads of suggestions!
Nicely done ROBLOX. The only things I have to say are
1.) You may want to make sure users cannot swim up waterfalls. I noticed a beige brick kind of flipping slowly down the waterfall, it was slower than the other bricks, and it made me think that users may be able to do this, except move themselves UP.
2.) I was kind of hoping water would spread throughout an open area. For instance, you make a waterfall, and the waterfall is the source of the water. So perhaps you could make the water fill up an open space, and rise if it starts getting full.
Thanks for the great updates.
This seems SO cool! I think that you should make it an option to have it flow or not, and make it so that the water doesn’t just go into the sailboat, like it showed in the video.
You configure if it flows or not for each water cell.
Very extravagant!
This is great however there could be alot of issues like how to control/stop the flow, alot of people want o2 bars, and could the density of the water be changed to alter the drag of the water, if the water floods… all of these would be hard to script in unless you add all these otions into properties. Btw i love all the work you guys are doing right now. Can’t wait till the final product comes out BD
Quick note: make it so you CANT destroy it with explosives unless you give us a way to regeneratte it like you did with the terrain
Allow us to change the texture of the water, along with the water’s buoyancy.
v=(6x-L
Good. But it’s missing one key feature. When you dive down, there’s just the water brick above you and the terrain. The water, when you place it, should go downwards and fill up the hole you place it in. And it should be realistic, not filling up the big hole with a small amount. Make it so where you have to put a lot until it fills up. And make your screen also a little bit of blue tint, if you can. Also if you can, make the top of the water underwater a little bit light blue to look like it’s shining.
When will this feature be released?
Seem cool!
I can’t wait! Dark Blox Chronnicles Part 16 will have this.
Is it possible to have hurricanes and tsunamis? :D
Of course that would cause too much lag because of all the matter that is moving around. Especially in a tsunami one exception is if you just make the tsunami out of the voxel cells and try to make an animation, break and remove, and kill script to it. The hurricane would pretty much be impossible on ROBLOX’s format.
what about rain or thunderstorms or seas or oceans?
They are putting this in so you can make seas and oceans!
AWESOME WHEN DO NORMAL USERS GET THE SOFTWARE?! I CANT WAIT!!!!!!!!!!!!!!!!!!!!!!!!!!1
This is pretty genius. Now people don’t need to do alot of scripting for making water.
ok awsome!!! but ive said tis many times befour, BUILDERS SHOULD HAVE THE POWER TO CHOOSE PHYSICS FOR THEIR PLACES!!!!!!!!!
Is this a plugin? i havent found these anywhere…
IT’S ABOUT TIME :D
I have been waiting a long time for this and now it’s finally here! I’m very excited about this new physics advancement, plus I feel proud I somewhat understood those complex equations. xD
In the future, if you could, I would really appreciate it if you’d think about adding some of these other features (if you haven’t already) to the water physics:
1.) Make it so we can change the velocity, streamflow direction, and bouyancy as well as the color of the water (so we could make it green for slime or something xD)
2.) Make lava just like the water except it’s ‘firey’ and deals damage to your character
3.) Make it so the water could put out fires (this could be used in a lot of scenarios)
I’m not saying you HAVE to do these things, just use them as ideas for the future. Thanks so much for the Water Physics update Roblox! Keep up the great work!
For 1) you can change velocity and direction of waterflow via script.
Awesome! I’m really looking forward to this. I’m so going to add it in my game.
Looks pretty good so far,Im hoping it has a ‘Wave’ setting where the water brick will actually increase and decrease on it’s own without the aid of building tools.
But also the ability to change it’s colour,reflectantcy and transparentcy.
it needs to be like old blocks because they are more life like >.>
I know. I, like many users, hate the terrain. A blue transparent brick looks more realistic than the current terrain water.
Good idea,can’t wait to put it in an endless sea game :3
EPIC!!!!!!!!!!!!
i like it alot
Already start making boats!
Way too cool! This is one of the things I was waiting for on Roblox! Good Job Roblox! Two Thumbs Up! :D
When will this come out? I’d be pretty excited when it does.
OK I have a Idea Cant you Like Make weight on It like You go to the End of the boat with alot of the robloxains it will start to tip on its back Could you do that-Idea From Bellade On Roblox.
You know that is included in each individual brick in other words every brick that has a joint to another acts as one brick
Yes, the boat can already tilt if you have robloxians move to the end of it.
Hm… this is for stanper tool or roblox studio ??
Yeah what is it for
ROBLOX Studio, I bet. It would be easier in Studio because the stamper tool is good for inserting stationary bricks, not flowing water. If water was ever associated with the Stamper tool, it would be pools, sinks, etc. I think water will be a new object when you go to the Insert window in Studio. I hope that it has more characteristics of real liquid and is able to spread out, like Minecraft.
It is part of terrain, so it is stamper.
YES!!! YES!!!
You should really put breatheing bar when you dive and your breatheing goes down and it goes completly down your health goes down a little bit
You can do that with Scripting…
few things that would be kinda cool:
1:make it so water could put the fire out
2:it could be placed with a stamper tool
3:make lava to go along with this!
clawdude97
I wet my pants from happiness from watching this but when you go under the water your screen should become blue and the swimming bit is awesome!
You can do that with Scripting.
Urm. Amazing. Just I think it should be coloured if you go underwater. Like real life. Like a dark blue.
When is it coming out?
(The reason I am saying my name is Anonymus is because I am using a computer at school in a different classroom than my own)
________________________________________________
I cant wait to use this in my new Hunger Games game!
Dude you kind of gave your self away by saying you made the hunger games and i can’t wait for you to add it in your game is one of my favorite games
Okay now how will you have it insert?
The same way you insert other terrain because the only real diference between this terrain material and other ones is the CellMaterial Property and the fact that its CanCollide false and affects part objects that are in it.
I’ve been looking forward to this. But a little question. As Sethalonian said why does it have to be terrain? I mean terrain is an intresting feature and all but as Sethalonian said what’s the point of bricks and all things ROBLOX if your not going to use them?
That water cells, in the current iteration, contain key properties of the water such as flow direction and speed.
Can we apply the water physics to other bricks than the blue ones?
Great, not only can i annoy people by using the new blocks and making them go on for every, but i can also drown them and bring them all the way back to the start of the map, nice touch.
Looks great; can’t wait to use it in my new paintball game! :)
there should be a breath meter option!
Looks really nice. Sadly, this will still need A LOT of work. On the waterfall, one of the water falls, the water is going up. Also, when your under water, you can’t see the water, only the terrain. The layout and texture needs to be worked on a lot as well. I think ROBLOX’s textures should be more transparent, and the water clear. The MC water is ideal, but I know you want to keep as far away from it as possible. You also will need a lot of flexibility with this new aspect, like create a place where water mass comes out of. I also think flooding needs to be added. Like you can make the water come off your baseplate so it doesn’t flood, but if you don’t, the whole game floods? Or maybe add a tool in edit/build mode so you can select heights and boundaries for this. Overall, keep up the good work! This could bring new prosperities to ROBLOX game play. I can’t wait :)
I think you should be able to drown in it but otherwise it is pretty cool. Maybe like an old game where it counts down once you stay underwater long enogh.
Yeah the drowning idea is a good suggestion, just like the script Wingman8 used in his Galleons game.
Water flowing up ? Nice spot. Probably just a texture glitch. I’m sure it’ll get fixed in production.
My Problems with it.
1. Why must it flow? Why not just let it sorta let its speed be 0 then let the character swim where he wants….
2. Why must it be Terrain. What are the point of bricks if we won’t even use them…. And it would be much cooler if you could CFrame it…
@Sethalonian
you kind of can… it is hard to explain
1. You can set up the water as static with speed 0 as you wish.
2. They are just voxels, 100x cheaper/faster than standard parts. They exist to hold key properties for water cells so that you can setup complex water torrent via scripting.
I can haz test? :o
Looks cool. Will it be laggy though?
i need the water, it looks soooooooooo cooooooool
Water would look better if it was transparent.
Awesome. Now we can make boats that really float :D
This is epic! Can’t wait until this is out, it will change the way any game with water in works. I was planning to build a group base with a river in, just using a slightly transparent non-can-collide blue sheet to represent the water, which people would fall through when they fell in (I wanted it to be lethal). But now, on second thoughts, I will wait until this is implemented and it will be awesome.
Awesome, but I don’t really like the mesh. Should be more realistic or able to transparent it(Maybe also able to delete the mesh too) :L
Thanks ROBLOX, with the water transparent upgrade. Sooo… Excuse me while I go make it. -Starfox3213
I can’t wait! :D
Omg that is so cool i love the picture!!!
After years of wishing and waiting for water, I finally get it for my games! Thank you!
This looks amazing! Not only will it open new updates to my games, but it lets players be even more creative! I can sense many more obbies coming soon.
So has this been put into the game yet?
WHAT ABOUT THE ROPE!!!
Give them time, you can’t do 40 things at once.
That is purely awesome! I’m expecting that we can change alot of the properties on the water… Transparency, color, flowdirection?
Also, for advanced game makers, they should be able to edit a block’s buoyancy. As an example, making steel float and wood sink.
I can’t wait for ROBLOX to be back online!
I can’t wait!
I have a few questions, Can you change the water flow speed? Also will you be able to place the water in personal servers?
Does pressure in the water increase if you go deep? For instance, would a robloxian implode if he or she swam too deep below the baseplate?
I can’t wait for this :D
When will that invention happen?
Nice
Very nice, some questions though,
Will it be script-editable, or be able to fire script functions? Also can the texture be edited by the user. Finally would it be possible to have the screen slightly blue when underwater?
Cannot wait for this amazing feature to be released, going to enhance games 10 fold!
OMG cant wait! :DD
Its seems a great idea, but my only question is will it work with conventional models? So if you drive a car into the water will it still have physics inflicted upon it…
Of course, your car will flip and roll and sink down to the bottom of the lake unless … you build a car out of wood or plastic.
Can’t wait!