Asa sound designer, musician and filmmaker, much of my creative work is based on personal experience in the world, based on my own senses. I have spent a great deal of time alone in the wilderness listening to unknown animal calls and finely sculpted natural soundscapes, as well as in foreign countries that offer unexpected sonic reflections of human culture. Through the simple act of listening and observing my own physical, mental and emotional reactions to the surrounding sounds, the stories of these places, people, creatures and events began to coalesce into a pattern. This pattern was drawn from the previous theoretical structures I had learned from studying and creating films (traditional models mentioned above), but extended beyond into this dynamic model that I now call Sound Spheres.
If we consider the human experience of our environment from its most intimate to most external, a model of six concentric spheres serves to describe the various levels of sonic information available. Like the layers of an onion, an outer sphere may encompass some of the properties of inner spheres, but not as an absolute rule. As a perceptual construct of our world, this is a model to be to be explored, debated and expanded upon in relation to other audiovisual theories, as well as psychoacoustic and philosophical approaches.
Our bodies are organic factories full of vibration, friction and impacts that create sound. Many of these can only be heard by ourselves, if we even notice, as normally we are habituated to constant low level rhythms of breathing, heartbeat and even neurologically based auditory stimuli like tinnitus. However, slightly louder bodily functions become audible to us and to those around us, sometimes with unintended, embarrassing results. Speaking and clapping are more obvious sounds we make for the purpose of communicating with others. This sphere represents the interface between the very personal, private and personalized arena of sound making and that of interaction with others.
When we make contact with the outside world, manifesting our willpower through our bodily movements, this action sets up sonic vibrations. Often it is initiated by our hands, the major anatomical marvel that distinguishes us from most other animals. We have the capacity to smash materials with heavy objects, delicately finger minute particles and complex musical instruments, and communicate through sophisticated symbols on electric devices. Our whole body plays the environment like a drum set, slamming doors, pounding up stairs, sweeping the floor and turning the pages of a newspaper.
The purpose of the assignment is to have the students experience their own sound spheres, then to apply this in a possible dramatic film scene with an evolving plot. An extra benefit that frequently derives from this exercise is the opportunity to explore related audio theory and applications, which are noted below. Here are some of the results of this assignment.
NOTE: This experience highlighted the overlap between music, sound effects and dialogue in our everyday experience. Although these areas of audio are frequently separated in the production and postproduction processes of filmmaking, the application of the Sound Spheres model applies equally to all types of sounds.
Remember to leave your comments below (before Friday 5/13/11) to have them included in the discussion with David. Again, for the full article, check out Volume 1.1 of The New Soundtrack, available through Edinburgh University Press in both print and electronic document. Reprinted with permission.
The Sphere Legs Pendant is constructed from rhodium plated recycled 925 silver. It consists of five spheres arranged in a cross shape. Rounded elements accentuate its glossiness, bouncing light off of sleek curves. Each pendant features a brilliant cut lab grown diamond. An X for an eye, a stone for a mouth.
I'm looking for an algorithm which someone has access to that will compute the smallest bounding sphere that encloses a set of other bounding spheres. I have thought about this for a while and have come up with some initial solutions, but I don't believe these are necessarily the most accurate or the least computationally expensive (fastest).
My first solution is the simplest naive one, which is to average out the sphere centers to get the center point, and then compute the maximum distance from the calculated center to each sphere's center plus its radius, as the radius. So pseudo code goes like:
My second thought is to use an iterative algorithm to compute the minimal bounding sphere. It is computed by successively testing another sphere, if the tested sphere is inside the bounds, then nothing is done, otherwise a new bounding sphere is computed from the two spheres available. The new bounding sphere has a center that is half way between the vector between the two centers if it was extended to the spheres surfaces, and the radius is the half the length of that line (from the new center to either sphere's surface).
Initially I thought that this would be the way to go, since it is iterative and seems fairly logically consistent, however after doing some reading, most notably the article "Smallest enclosing disks (balls and ellipsoids)" by Emo Welzl I'm not not so sure.
As I understand it the basis of this algorithm is that the minimum bounding sphere over a set of points in 3 dimensions can be determined by at most 4 points (which are on the surface of the enclosing sphere). So the algorithm takes an iterative approach by selecting 4 points, and then testing other points to see if they're inside or not, if they aren't a new bounding sphere is constructed featuring the new point.
The step from enclosing points to enclosing spheres is non-trivial, as the discussion of Welzl's algorithm (which works to enclose points) in K. Fischer's thesis explains, "Smallest enclosing ball of balls". See Sec. 5.1.
For each sphere, find its min/max x/y/z points. Throw these 6 points into a bucket. When you've done all N spheres, you'll have a bucket of 6N points. Find a bounding sphere for these using any of the known algorithms.
The bounding sphere you get will very likely be a little too small, regardless of algorithm. You could then do the 2nd pass of Ritter's method, but using the backsides of the spheres as the points to test. 'Backside' meaning pt on sphere farthest from current bnd sphere's center. If a sphere's backside pt is outside current bnd sphere, grow bnd sphere to include it.
I love mirrors. They can create some very interesting mathematics. It is therefore surprising that although I have been working with raytracers (which do reflection very well) for quite a long time that I have never used them to look at reflections. I have finally dealt with that omission.
In order to get more pictures, and to help understand the pattern of reflections I now started to colour the surroundings. As we look at the spheres our gaze is bounced around until it eventually heads away from the spheres again. The question is, at that stage what direction is our view going. In other words, what are we actually looking at within all the reflections? To show this I created the set up below:
As you can see the spheres are in a yellow bucket with a blue bottom and red top. The position of the camera is shown with a black cuboid and the light is the white sphere. The red top will be pushed over the model for the images and the light switched on! Note that I place the light behind the model so we would not see it in direct reflection. So what do we get?
Now we can see whether we are really looking up (in red) level (yellow) or down when we look at the reflections. Can you look at the image and work out more about the paths various lines will take before heading out? The beautiful structure comes in as there are paths that take a very long, or even infinite time to leave the spheres.
My latest game will take place on a small planetoid. I am looking for good data structure for representing cells on the surface of a sphere. Triangles, squares, pentagons, hexagons? Which one minimises stretch the most and creates the best tiling?
Spherical mapping is the easiest but the stretch at the poles is unacceptable. Cubemapping is also fairly easy but there would still be considerable stretch near the cube corners.Subdividing an icosahedron seems the best in terms of stretch but there is the problem of indexing many triangular arrays and finding neighbouring cells at the boundaries would be difficult.
First, for the 'best' tesselation, I will choose the truncated icosahedron as a starting point. Subdividing it leads to a very nice tesselation of hexagons with 12 pentagons providing the curvature.Also, continuing the subdivision on its dual will give me a very good triangular mesh for rendering with nice properties.Regarding the 12 pentagonal cells: I can ignore them, make them special (like the only places bases can be constructed), or I can hide them under scenery.
The hexagonal and pentagonal cells will be stored in a half edge data structure for easy access to neighbours and fast traversal. The only tricky part is finding which cell a given world point is in, but that can be done by starting at a random cell and walking towards the point through neighbours.
There is a way to do this rather elegantly based on subdividing an icosahedron, as you suggested in your question. An icosahedron is made of 20 equilateral triangles, and these triangles can be grouped into 5 sets, where the 4 triangles in a set form a parallelogram shape:
The numbers in each cell are the column numbers of the rectangular array. The rules for finding neighbors within the array are fairly simple: the horizontal neighbors are just plus or minus 1 column, while the vertical neighbor is either minus one row and plus one column, or plus one row and minus one column, depending on whether the column number is even or odd, respectively.
However, you still have to write some special-case code for finding neighbors that cross the boundary from one parallelogram to the next. It's a bit tricky since in some places, the top or bottom of one parallelogram will be connected to the side of another, or the top and bottom will be connected with a horizontal offset between them, etc. Possibly a half-edge structure or similar for the parallelograms would be useful here. However, at least the relationships are symmetrical amongst all 5 parallelograms: they all follow the same pattern in which side is connected to which other side of their neighbors.
3a8082e126