Why Scientific Philosophy Is Important

I recently talked to a person who was convinced that scientific theories, mathematical theories, mathematical theorems, knowledge, truth, and scientific laws were all basically synonymous. He said that physics could not exist without math, because math defined physics. He also was convinced that believing and agreeing were the same thing. I attempted to remedy these misconceptions using some basic arguments, but I was finally written off as “not understanding anything” and “unwilling to do the math”. When I asked him to define the word truth, he merely kept repeating, “I don’t know what you mean. Truth is just that which is.” When I attempted to explain that the word “truth” was a symbol referring to a concept, and that we couldn’t have a discussion if we were referring to different concepts with the same word, he said “you don’t need to define truth, it just is. It’s very simple.” He couldn’t understand why I kept “bringing up philosophy when we’re talking about simple truths here.”

Sigh. If I can’t break through that kind of rhetoric, I might as well just explain my thoughts here.

Why is it important to know about the philosophy behind knowledge, truth, and science when talking about it? Isn’t it possible to rely on a the natural human consensus of truth? Besides, while it is so hard to explain using language, people intuitively grasp the concept. Right?

Well, let’s give some examples. It’s true that if you drop an object, it falls, right? Well, yeah, that statement is true if you are on the surface of a planet, and not orbiting it. Or if you are underwater and you drop a buoyant object — it goes up! But wait, can you drop something underwater if it doesn’t go down? No, that wouldn’t be dropping it would just be… releasing? Hold on, when an object is in orbit, isn’t it actually just falling in a special way? It’s moving sideways fast enough that it misses the ground by the time it’s fallen far enough. But if an astronaut releases a wrench, and it float right in front of him, you wouldn’t call that “dropping”.

What we see is that the word “drop” has a definition, and we need to know what the definition of “drop” is before we can begin to assess the truth of the statement “if you drop an object, it falls”. As it turns out, “dropping” an object consists of releasing it such that it falls away from you. Uh oh. So yeah, “if you drop an object, it falls” is true, but it doesn’t actually convey any physical knowledge; it just defines a property of the word “drop” in terms of another word, “fall”.

So lets look at some more meaningful examples. Most people would say it’s true that planets orbit the sun in an elliptical manner. Except it isn’t true. It’s true that the movement of the planets can be approximated into ellipses, but in fact there are measurable deviations. “Okay, sure. The movement is actually described by Newton’s laws of motion, and the law of gravitation.” Okay, yes, an N-body approximation gets much, much closer to describing reality. In fact, it perfectly matched the observations Newton was working from. However, it’s still not true the Newton’s laws describe the motion of the planets.

We can look to general relativity to describe the motion of the planets even better. We have launched satellites to observe very minor fluctuations in the path of the Earth that would confirm the prediction made by general relativity. As it turns out, general relativity makes predictions that perfectly match our observations. Woof. Finally, we’ve found some truth. The path of the planets around the sun is described by general relativity.

But wait, can we say this in good conscience? No! Just like Newton, we’ve found a set of laws which create predictions that match our observations. But just like Newton, we cannot measure the motion perfectly. All we can say is that general relativity describes the motion of the planets as far as we can observe. We don’t know if there is some unknown mechanic that affects the motion of planets in a way we can’t measure right now. We can’t say that general relativity is “true”, we can only say that it is confirmed by all of our observations to date, much in the same way that Newton could not say that his laws of motion were true; they merely described the all physical data he was capable of obtaining.

This gets to the root of the problem. While mathematical notions can be “true” because they exist within an entirely constructed framework defined through logic, theories in science can never be “true”. The point of science is not to find things that are true, but to find the best explanation for why the world works the way it does. And just to get one thing clear, theories are explanation of “why”, and laws are explicit definitions of how physical quantities relate. So no, we don’t use “math to define physics”, physics uses math to explain the physical universe. But even without math, we can perform a sort of qualitative physics.

For instance, “things stay still until you push them, and things keep going straight unless you push them.” This phrasing of Newton’s first law of motion is simplistic and uses words like “thing” and “push” without really defining them, but it gets the point across. Similarly, “big things move less when you push them, and small things move more.” This is very simplistic, and doesn’t even mention the fact that acceleration changes linearly with force, but it communicates the basic idea of Newton’s second law of motion, without even getting into what “big”, “small”, and “move” really mean.

The point is that the traditional phrasing of Newton’s second law, F=ma (which, by the way, is more accurately ΣF = m * Σa), merely uses mathematical symbols rather than English symbols, which allows us to manipulate it using the rules of mathematics. But just because we are manipulating arbitrary quantities with math doesn’t mean anything physically. Just because I calculate that an object which masses 1 kg should accelerate at 1 m/s^2 when I apply 1 N of force doesn’t mean the thing is actually going to act that way if I perform the experiment. This is because “mass” is really a simplification of a whole range of things, as is “acceleration”. It doesn’t even account for internal forces, and only describes the movement of the center of mass.

Math may be true, but only within the realm of math. When we translate physical quantities into the mathematical universe, they lose they physical meaning. We may translate them back, but the results we get can only be an approximation, not a truth, not a reality. These approximations can be very useful, but we have to remember the limitations of our theories, and our instruments.

OpenGL and Geometry Generation

Today I was thinking about 3D rendering (in part because of the recent work I’ve been doing with ray tracing). I worked out all the math for drawing a polygon based on a list of vertices and a camera. I was considering coding it up, but then I realized that I was very unfamiliar in working with Windows (because I sure as hell wasn’t going to do this in Java). So I spent the greater portion of the afternoon reading a tutorial on Windows programming and using OpenGL, at which point I abandoned my original. I was just going to finally figure out how to use OpenGL.

I had worked with GLUT before when working on a Parallel Computing lab. However, I only used pixel control in that case; I was rendering subsections of a Mandelbrot set. However, that was easier because all the requisite libraries were already installed in the major lab at school (which has workstations with Gentoo installed). Working at home, I have been confounded. I just can’t get the linker to use all the requisite libraries.

The whole thing that got me thinking about 3D engines was my working on a HL2 level. Often I will import brushwork (pieces of the level) from the game’s campaign levels; it saves time and adds a nice level of detail to the environment. However, I was thinking about common elements such as stairs, doors, windows, and grates. It’s a multi-step process to cut a hole in a brush, unless you use carve (but nobody uses carve because it doesn’t give you control over how the geometry cuts). Doors are tedious to cut out and then line up with the texture. Non-solid stairs are the most painful to make, however. You have to arrange the steps and make sure the sidings match up, and for each new type of turn you have to rework the geometry. The whole idea of hand-making all the geometry in a level is ridiculous. I haven’t seen a single FPS level editor than lets you define procedures for geometry generation.

A screenshot of the Hammer UI

A screenshot of the Hammer UI


I feel like it would be relatively simple to define a generation process for buildings, for example. Each building is spaced a certain distance in from the sidewalk. There are maybe two or three justifications for things like planters and doors. Then windows are spaced evenly apart, with buffer spaces on either side of the building. You could attach balconies or planters on to every windows, awnings above doors, and even outdoor area layouts for cafes. After meticulously defining a couple of building styles, you could almost instantly generate entire blocks. Then come the nested procedures. A street, for example, would have periodic drains and manholes, distributions of building types based on the neighborhood type, and junctions to more streets. Signs, traffic lights, road markings, and crosswalks would all be placed correctly at street corners. Coul-de-sacs could fill up empty space. Interiors could be set as well for buildings. Floor plans could be modular. Rooms with distributions of room types and different layout permutations would combine into floors. A building type could have a sequence of floor types defined, such as bottom level stores and top level apartments. Central structures like stairwells would only need to be made once.

Although the procedural parameter definitions might take a while longer than making regular geometry, it would be a huge time saver. Not only could full geometries be generated, but intricate, custom-designed battle areas could be laid out faster. Common terrain pieces like walls, fortifications, stairs, railings, gates, and hedges could be created with the use of a single spline. Suddenly a task like designing the maps for my strategy game becomes less daunting. The pipeline for map production is shortened. General map layouts can be quickly sketched out and then directly generated. Beta testing would be infinitely easier, as map adjustments could be made in hours, rather than days.