November 22, 2024, 05:04:15 pm

Author Topic: Minecraft Science: Fluid Dynamics  (Read 14003 times)

0 Members and 1 Guest are viewing this topic.

Wyboth

  • Champion Member
  • ***
  • Posts: 1107
  • No longer active - contact me on Reddit.
    • View Profile
    • Contact me via reddit
Minecraft Science: Fluid Dynamics
« on: March 25, 2013, 02:18:39 am »

Fluid Dynamics

By Wyboth

Introduction

Water is essential to our lives. We drink it, we bathe in it, and we use it for travel. In the past centuries, great physicists have discovered the equations which water and other fluids behave by, paving the way for countless inventions we couldn't imagine living without. In Minecraft, water does not play as large of a role as it does in the real world, but it certainly cannot be overlooked. As always, the purpose of this and future experiments will be to discover just how similar Minecraft is to our own world, and today I will focus on water.

In Minecraft, water is a means of fast travel (boats) and a makeshift conveyor belt (flowing water & channels). This article will focus on these two things. Firstly, I will determine the maximum velocity of a boat. Then, I will find the velocity of a player in flowing water.

Materials and Methods

The first experiment will determine the maximum velocity of a boat. One may think that this would involve going maximum speed in a straight line and comparing coordinates 1 second apart, but it is not that simple. A good metaphor for going maximum speed in a boat is driving in a car with cruise control on. The speed is constant, so the only thing that you can change is the direction you are traveling by steering. Say you turn the steering wheel about 45° clockwise and hold it there. The car would then turn clockwise in a circle until it ran out of gas or you changed the orientation of the steering wheel. You can do the same with a boat, but you would use the direction the player is facing instead of a steering wheel. How "hard" a turn is is determined by how large of an angle there is between the bow of the boat and the direction the player is facing. Here's the problem. A player can never be perfectly lined up with the bow of the boat. Even if the angle is 0.01°, the boat will still move in a circle, albeit a large one. Because of this, boats can never truly travel in a perfectly straight line, so I cannot measure a boat's velocity as if it were doing such.

Because the boat's velocity is not linear but circular, I must use the laws of Centripetal Motion to determine the velocity. This is most easily done by constructing a sine equation of the boat's motion. To do this, I must first gather data of a boat traveling in a circle. For this experiment, I will create a superflat world filled with water, travel to the origin, and set down a boat. I will enter it and position my player so that he is looking about 15° to the right of the bow. I will then turn on F3 options and accelerate to full speed. When I am at full speed and traveling in a circle, I will record my gameplay with FRAPS. I will continue this until I had made one complete revolution. I will then perform frame analysis with VirtualDub to get my coordinates for each second. For the sine wave, it does not matter if I choose the x coordinate or the z coordinate. I will choose the z coordinate. The x-axis of the graph is time, and the y-axis is the z coordinate. Here is the graph.



Note that this is the raw data; no model sine wave has been constructed yet.

The first step is to plot a standard sine wave (y = sin(x)) with the data. From there, I will apply tweaks to it until it matches the data.



Obviously, the two are completely different. The first step is to find the amplitude of the wave. The amplitude is the "height" of the wave, or the distance from the middle of the wave to the crest or trough. The wave's crest is 10.08194, and the wave's trough is -150.18664 m. The formula for amplitude is this:

a = (c - t) / 2

A is amplitude, c is the crest, and t is the trough. I will substitute the known values into the equation.

a = ((10.08194) - (-150.18664)) / 2

a = (160.26858) / 2

a = 80.13429

The amplitude needs to be multiplied to the front of the equation. Thus, the equation becomes: y = 80.13429 * sin(x). This is the new graph.



The next step is to apply a vertical translation so that the two sine wave's centers are aligned. The equation for vertical translation is this:

vt = c - a

Vt is the vertical translation, c is the crest, and a is the amplitude. I will substitute the known values.

vt = 10.08194 - 80.13429

vt = -70.05235

The vertical translation is added to the end of the sine equation. Note that I am adding a negative, so it will be subtracted instead. The new equation is: y = 80.13429 * sin(x) - 70.05235. Here is the graph.



The crests and troughs of the two waves can now be seen to have the same y values. The next step is to change the period of the graph. The period is the time it takes for one complete revolution. This is usually the time from crest to crest or trough to trough. However, since there is only one crest and one trough, I cannot find the period in this way. However, I do know that the distance from crest to trough is half of the distance from crest to crest, and I do have a crest and a trough, so I can find the period using this formula:

t = 1 / ((2 * (cx - tx)) / (2 * pi))

The trough occurs at an x value of 21.067 seconds. The crest occurs at an x value of 57.033 seconds. I will substitute the known values.

t = 1 / ((2 * (57.033 - 21.067)) / (2 * pi))

t = 1 / ((2 * (35.967)) / (2 * pi))

t = 1 / ((1079/15) / (2 * pi))

t = 1 / 11.4485455730770044969

t = 0.0873473397661666330553159511

The period is multiplied by x in the sine equation, changing the equation to: y = 80.13429 * sin( 0.0873473397661666330553159511 * x) - 70.05235. This is the new graph.



Only one step remains: the phase shift. Once this is applied, the two will overlap, and the equation will be complete. Here is the formula for phase shift:

ps = t * (cxd - cxs)

Ps is phase shift, cxd is the data's crest's x-coordinate, and cxs is the sine wave's crest's x-coordinate. I will substitute the known values.

ps = 0.0873473397661666330553159511 * (57.033 - 17.9833)

ps = 0.0873473397661666330553159511 * 39.0497

This number is actually irrational, with the 9 repeating infinitely. To represent the phase shift accurately, it must be written in rational form.

ps = 0.0873473397661666330553159511 * (781 / 20)

ps = 3.410913617868807020810087890455

This number, although positive, must actually be subtracted from x to function properly. The final equation is this: y = 80.13429 * sin( 0.0873473397661666330553159511 * x - 3.410913617868807020810087890455) - 70.05235. Here is the graph.



As you can see, the two perfectly overlap each other. The equation is correct. Now, I will find the velocity based on the properties I found earlier while creating the sine wave. This is the equation for tangential velocity:

v = (2 * pi * r) / t

It should be noted that the period of the boat and the period of the sine wave are not the same. A normal sine wave has a period of 2 * pi, so to find the true period of the boat, I must use this equation:

t = (2 * pi) / p

P is the sine wave's period. I will substitute values.

t = 6.2831853071795865 / 0.0873473397661666330553159511

t = 1079/15 s

It should also be noted that the radius of the circle is equal to the amplitude of the sine wave. With all of these values substituted into the equation, it becomes:

v = (6.2831853071795865 * 80.13429 m) / (1079/15 s)

v = 503.498593529268066671085 m / (1079/15 s)

v = 6.999517055550529193759291 m/s -> 7 m/s

The next experiment will determine the velocity of a player in flowing water. This will be accomplished by making a small channel of flowing water, walking to one end and holding W to keep myself in place, turning on F3 options, and then recording with FRAPS when I release W. I will then perform frame analysis with VirtualDub to determine the displacement, and use physics formulas to find the velocity.

Here is the experimental setup.



At one point close to the end of the channel, the player's z coordinate is -1010.37. 1/30th of a second later, his z coordinate is -1010.44. This means that the player traveled 0.07 m in 1/30 seconds, or 2.1 m/s.

Results

A boat's maximum velocity is 7 m/s, and a player travels at 2.1 m/s in flowing water.

Discussion

Firstly, I will cover sources of error. The only source of error is inexact frame display, and it only affects the boat experiment. This means that the Minecraft frame didn't update exactly when the boat would have reached the crest or trough, so the number is slightly off. This is why the velocity didn't show up to be exactly 7. However, as you can see, the error caused by it was very small (6.9 * 10-3% to be exact).

I beamed when I discovered that boats travel at 7 m/s, because it meant that my five hours of frequently interrupted work had paid off. Unlike most results in Minecraft Science, this number is a perfect whole number, which told me that I had done it correctly for sure. This knowledge could be applied for people traveling over water, such as those using AMIDST to find a mushroom island, so that they could know how long their trip would be. This could also be useful to mapmakers, so they would know just about how long it would take for a player to traverse their water level on a boat. The flowing water velocity would be useful to auto-farm designers, as they could calculate how long it would be before their harvested crop reaches a collection point. As always, if the reader can think of any other implications of this data, he or she should post a comment with his or her idea.

Works Cited

Minecraft, developed by the Mojang Team

Kinematic Equations, Isaac Newton

Centripetal Motion Equations, Johannes Kepler

Post Scriptum

« Last Edit: November 15, 2016, 07:16:16 pm by Wyboth »




I am inactive. Click here to send me a message that I'll actually see.

Chief149

  • Hero Member
  • **
  • Posts: 646
  • Oppan Gangnam Style
    • View Profile
Re: Minecraft Science: Fluid Dynamics
« Reply #1 on: March 25, 2013, 03:03:51 am »
you deserve an internet for that!



Best griefer name ^



Wyboth

  • Champion Member
  • ***
  • Posts: 1107
  • No longer active - contact me on Reddit.
    • View Profile
    • Contact me via reddit
Re: Minecraft Science: Fluid Dynamics
« Reply #2 on: March 25, 2013, 10:58:53 am »
Thank you! Somebody finally noticed the internet button.
« Last Edit: March 26, 2013, 12:48:11 am by Wyboth »




I am inactive. Click here to send me a message that I'll actually see.

sonic2676543

  • Newbie
  • *
  • Posts: 26
  • SMP Trusted
    • View Profile
Re: Minecraft Science: Fluid Dynamics
« Reply #3 on: March 25, 2013, 03:55:31 pm »
I agree, I'm also giving an internet.

Wyboth

  • Champion Member
  • ***
  • Posts: 1107
  • No longer active - contact me on Reddit.
    • View Profile
    • Contact me via reddit
Re: Minecraft Science: Fluid Dynamics
« Reply #4 on: March 25, 2013, 10:17:18 pm »
Thanks. :3




I am inactive. Click here to send me a message that I'll actually see.

iGenerator

  • Super Trusted
  • Champion Member
  • ***
  • Posts: 1230
  • Mayor of Rosenberg
    • View Profile
    • Steam
Re: Minecraft Science: Fluid Dynamics
« Reply #5 on: March 26, 2013, 04:51:44 am »
All these articles are just wow. The amount of time you must have invested in this series is astonishing
Major Igenerator
City Planner for Stuttgart


DP

Wyboth

  • Champion Member
  • ***
  • Posts: 1107
  • No longer active - contact me on Reddit.
    • View Profile
    • Contact me via reddit
Re: Minecraft Science: Fluid Dynamics
« Reply #6 on: March 26, 2013, 11:06:21 am »
All these articles are just wow. The amount of time you must have invested in this series is astonishing
Just wait until you see the next one. I'll be getting far more "Who has time for this?" comments than ever before.




I am inactive. Click here to send me a message that I'll actually see.

RuthlessTomato

  • Champion Member
  • ***
  • Posts: 1313
    • View Profile
Re: Minecraft Science: Fluid Dynamics
« Reply #7 on: March 26, 2013, 02:35:26 pm »
Post it on the MC forums!! And was i the only one who noticed he made the huge flowstone GIF? CONGRATS!

Wyboth

  • Champion Member
  • ***
  • Posts: 1107
  • No longer active - contact me on Reddit.
    • View Profile
    • Contact me via reddit
Re: Minecraft Science: Fluid Dynamics
« Reply #8 on: March 26, 2013, 07:01:38 pm »
Post it on the MC forums!! And was i the only one who noticed he made the huge flowstone GIF? CONGRATS!
I posted it earlier today. http://www.minecraftforum.net/topic/1743009-minecraft-science-fluid-dynamics/ And thank you!




I am inactive. Click here to send me a message that I'll actually see.

Wyboth

  • Champion Member
  • ***
  • Posts: 1107
  • No longer active - contact me on Reddit.
    • View Profile
    • Contact me via reddit
Re: Minecraft Science: Fluid Dynamics
« Reply #9 on: March 28, 2013, 11:29:38 am »
I almost forgot that I'm supposed to be doing a redstone article. I guess I'll work on that next.




I am inactive. Click here to send me a message that I'll actually see.

Wyboth

  • Champion Member
  • ***
  • Posts: 1107
  • No longer active - contact me on Reddit.
    • View Profile
    • Contact me via reddit
Re: Minecraft Science: Fluid Dynamics
« Reply #10 on: March 31, 2013, 04:38:30 am »
*bump*




I am inactive. Click here to send me a message that I'll actually see.

theone7142

  • Sr. Member
  • **
  • Posts: 371
  • I'm Neo. Understand?
    • View Profile
Re: Minecraft Science: Fluid Dynamics
« Reply #11 on: March 31, 2013, 05:14:42 am »
Wyboth, I admire your time and effort put forth into something many would call a waste of time. Your dedication to the game and science for that matter is incalculable. I hope you never stop doing these.

Wyboth

  • Champion Member
  • ***
  • Posts: 1107
  • No longer active - contact me on Reddit.
    • View Profile
    • Contact me via reddit
Re: Minecraft Science: Fluid Dynamics
« Reply #12 on: March 31, 2013, 05:53:08 am »
Wyboth, I admire your time and effort put forth into something many would call a waste of time. Your dedication to the game and science for that matter is incalculable. I hope you never stop doing these.
Thank you, you understand something that few can fathom.

I call myself a scientist. I am a servant to mankind, revealing and understanding the secrets of the universe to better the lives of others. That is my dream, my quest, my destiny. Through hard work and perseverance, I will achieve that which few can boast of. Now matter how difficult it may look, no matter how hopeless it may seem, I shall overcome the obstacles and solve the problems. I shall not rest until everything is known and all is understood. This is how I choose to do my work, this is how I choose to live my life.




I am inactive. Click here to send me a message that I'll actually see.

Sugna

  • Sr. Member
  • **
  • Posts: 473
  • -woodenslime-
    • View Profile
Re: Minecraft Science: Fluid Dynamics
« Reply #13 on: April 02, 2013, 08:16:35 pm »
What the... *Explodes*
( ͡° ͜ʖ ͡°)

Wyboth

  • Champion Member
  • ***
  • Posts: 1107
  • No longer active - contact me on Reddit.
    • View Profile
    • Contact me via reddit
Re: Minecraft Science: Fluid Dynamics
« Reply #14 on: April 03, 2013, 12:05:59 am »
What the... *Explodes*
This is the most common syndrome people get when reading these. I really need a surgeon general's warning on the front.




I am inactive. Click here to send me a message that I'll actually see.