Programming
Though I initially started development with C++, I have moved to Java because of portability problems with Windows (Vista, in particular). So far, it seems to run fairly well on Linux (tested on Fedora, CentOS and Cygwin), Mac, Windows XP and Vista.
After trying MANY different canned programs, libraries and resources, I have settled on using the following for development:
- Java 6 (or 1.6)
- NetBeans IDE (project-based in groups)
- Subversion code management system (testing on server now, will be available to developers).
- OpenGL graphics, including the "glu" and "glut" libraries for primitives.
- JOGL (Java OpenGL) interface library (started with Java3D, but they don't seem to be supporting it any more).
- Webstart for Java 6 for large application deployment; applets for smaller applications.
You will need OpenGL and JOGL on your computer to run the applications. Fairly easy install on Linux, but a bit tricky for Windows. I will post some instructions after I get some test applications out.
A decent video card will probably be needed for the animations. I am developing with an NVIDIA 7600, which works remarkably well with OpenGL on Windows. (I am trying to program the graphics and animation systems to make efficient use of GPU hardware, when available.)
I figure a "picture is worth a thousand words", and an interactive animation is even better, so that is the approach I am taking.
Right now, I am developing against LineLand, so everything is based on ONE scalar dimension, but I am keeping FlatLand and the 3D world in mind as I go along, so the libraries will just be updated and supplemented, rather than replaced.
cdannemi
Fri, 05/15/2009 - 16:22
Permalink
I am attempting to get to a
I am attempting to get to a point where I too can simulate the RS and perhaps the RS2 Theories in a application. I spend a lot of my time during my day job simulating Newtonian Physics for video games so I have a lot of experience speeding up physics simulations. The information I have read about RS theory sadly does not get terribly specific in the realm that I need.
There observations are from what I have read about RS, RS2 may be different is so please point out where it is. The universe is comprised of motion this is true, but the universe also has some kind of "memory", I use this term only because it is analogous to how it is stored in a computer. This memory seems to be the position, orientation, and motions (since Larson describes different types of motions that can occur) that exist in the universe. The Position and Orientation can be stored one of two ways the first is a 4x3 matrix that contains the rotational matrix and a translation vector, or a Quaternion and a 3d position vector. Regardless of how it is stored the more important question in my mind is collision.
So far I have only been able to determine from reading Larson that Collision is somewhat a game of chance. Is this true for a specific collision, or was he talking about the nature of collisions in a large volume such as modeling the ideal gas law? Regardless the fundamental question that I have been unable to answer thus far in either RS or RS2 is how do collisions of motion occur, and when they do what effect do they have.
wsitze
Mon, 05/25/2009 - 00:38
Permalink
Keep in mind that the
Keep in mind that the development needs to run under Mac OS X, too, although I now have an Intel Mac, and so can run Windows (and Linux, etc) more or less natively.
WAS
cdannemi
Tue, 05/26/2009 - 10:05
Permalink
It all depends on how fast
It all depends on how fast you want the code to execute. Java while giving you OS independence out of the box, it does not have a good ability to take advantage of newer technologies that are coming on board. These technologies would be a huge benefit to a simulation such as this. Here is a short list of things I am pretty sure Java either has no support for or marginal support for:
- NVIDIA's CUDA, would support optionally. Basically the NVIDIA GPU is a massive parallel processor for simulating motion with this could be ideal and allow a massive speed up on machines that support it. A lot of things that are intractable to solve without this are being done, such as protein folding.
- SIMD, SIMD makes matrix based operations much faster depending on what precision you desire it can be 2X-4X faster then writing code with the native "float".
- Multiple Cores - It is difficult to control multiple cores in Java. Exchange of information between cores is ideally done with atomics which again Java does not have good support for since they tend to be CPU specific. Again in something like this being able to take advantage of massive parallel processing will allow for much larger simulations.
It is a fairly trivial task to support multiple operating systems in your code if the code is layered in a way that makes the OS transparent. The overall idea it to layer the code in such a way that the native OS code is below your application code.
Horace
Fri, 05/29/2009 - 09:06
Permalink
I strongly advise against
I strongly advise against Java. It is a slow and limited language.
To illustrate the limitation of it, I dare you that the best Java expert you can find, cannot even rotate a simple window in Java, and am putting up $1000 if you find one that can do it within a month.
If multiple OS portability is a concern, then VMWare or ther freeware virtual machines are a painless solution for portability. and with virtualization support from modern CPUs - a high performance one, too.
cdannemi
Mon, 06/01/2009 - 12:21
Permalink
Virtualization does have one
Virtualization does have one major drawback, and that is it does not support 3D acceleration very well at all. One of things I would like to do is use the program to visual atomic structures; this will be best done in 3D. I maintain that in an application such as this you can probably get away with having very little code that is "platform specific", and where the code is platform specific you can insolate it.
Rotating a window, I wonder what you even mean by that. In general windows in an OS are defined to be rectangles parallel to the screen.
~ Christopher.
Horace
Wed, 06/03/2009 - 17:48
Permalink
I meant rotating a window by
bperet
Sun, 06/07/2009 - 23:42
Permalink
Simulation status
I understand the concerns that have been posted regarding computer language, hardware and OS. Right now, we're concentrating on the theory aspects--getting the system accurately represented, rather than speed issues. I have put together a number of simulations so far, including a globular cluster simulation, Lineland (one scalar dimension, which is easy to graph) and a chemical/aggregate behavior simulation with adjustable thermal properties. The running speed of Java has not been a problem--if anything, it is going too fast and I have to put variables in to slow it down to be observed properly (using a good NVIDIA card). The Java apps DO run on any OS that supports Java and OpenGL, including Mac.
However, some disturbing things have come out of it...
All-in-all, the virtual universe of motion has been quite the learning experience. Larson appears to have overlooked quite a bit in his first draft of the RS. Hopefully, using the simulations, we can correct those omissions and get a system that accurately represents the observed universe.
StevenO
Mon, 06/08/2009 - 16:01
Permalink
Great work!
That sounds like a great initial result Bruce!
Do you already have something that a beginner can download?
The Universe unlocks its secrets in geometry
Horace
Tue, 06/09/2009 - 03:22
Permalink
Would you agree if I write
Would you agree if I write that motion TRANSFORMS LOCATIONS into new locations for other motions ?
...including observers which are just a set of other motions
Bruce wrote:
"As to the question of "what is moving" in a universe of motion... I have an answer! "Motion" doesn't move...motion TRANSFORMS LOCATIONS into new locations"
bperet
Tue, 06/09/2009 - 17:44
Permalink
Webapps
Do you already have something that a beginner can download?
I did all the development with Netbeans, so I should be able to produce both web applets (windows on the web screen) and "webstart" applications, where it is run directly on your computer, rather than in the browser.
Gopi is over here in America for the summer, and he came up for a visit last week and we went over a lot of stuff (he is a physics major). I think we have an idea of what is going on now, at least at the atomic level. In the process of recoding the logic and still have to deal with the idiosyncrasies of Java OOP integration with OpenGL. I'll make both the source code and executable programs available on the web site once we get to the point where the program is clearly demonstrating RS2 concepts.
The initial releases will basically be "proof of concept" type programs, not any time of generic library for development.
bperet
Tue, 06/09/2009 - 17:59
Permalink
Primary and Secondary transforms
Would you agree if I write that motion TRANSFORMS LOCATIONS into new locations for other motions ?
Yes, but I am finding that there appear to be "layered" transformations. Nehru came up with the concept of primary and secondary motions some time ago, and that is showing up in the simulations. For example, every location can contain a "motion" (transform). But the aspect of motion then comes into play... the net temporal motion (imaginary half of a complex quantity) transforms the "space" between coordinate spatial locations, resulting in the effects we call a "field". But the net spatial motion (real half) acts directly upon the locations, themselves. And vice-versa for coordinate time.
From a material observer, the temporal motion is "primary", and the spatial aspect is "secondary" (hence we see birotation in time as vibration in space). But that is reversed for a cosmic observer. Which leads to your next comment...
...including observers which are just a set of other motions
the "observer" or camera transform. Right now, I have the camera transform fixed in the material sector. Phil was asking if I could create an observer-free simulation, and that seems a bit challenging, because the observer defines the units and operators--a material camera sees space as real with linear operations, yet a cosmic camera under the same transforms would see space as imaginary with polar operations. Makes it a bit hard to code! And it does not appear to be an either-or situation, that could be handled with an "if" statement... the camera transform also defines the perspective and scale, so it is technically "infinitely variable".
If you have any thoughts on how to integrate the observer/camera into a generic transform that can be applied to the other transforms outside the observer, I'd love to hear them. Bit stumped on that at the moment.
cdannemi
Wed, 06/10/2009 - 18:46
Permalink
It looks like you have made
It looks like you have made some impressive progress. It seems like Java is going to be useful at least for small scale simulations, once the smaller scale simulations have been vetted, and there is a move to larger scale simulations it will be important to optimize the code to ensure that the simulations are as large as possible, however that is a problem that does not have be addressed until later on. I am really looking forward to looking at your code once it is available.
StevenO
Tue, 06/23/2009 - 14:48
Permalink
bperet wrote:
bperet wrote:
Nehru's birotation looked really great, until we ran the simulation... the birotation produces HEAT, not a photon of light! I reviewed the simulation with Nehru, and we may have a better interpretation that not only creates heat, but a proper photon where EM radiation is accounted for (totally missing in Larson's model).
Hi Bruce,
Did you also try to simulate the single and doubly oscillating photons as they are described by Jan Sammer?
The Universe unlocks its secrets in geometry
Horace
Thu, 06/25/2009 - 15:05
Permalink
"Phil was asking if I could
"Phil was asking if I could create an observer-free simulation"
I think this should be theoreticaly impossible, because the motion of the observer is always afeects the observee, making these two inseparable.
Just like a mathematical cross-ratio cannot exist without two related ratios.
Take the Doppler effect for example. Without relating the frequency of light to the motion of the observer, its frequency is indeterminate.
bperet
Tue, 06/30/2009 - 17:11
Permalink
Oscillating photons
Did you also try to simulate the single and doubly oscillating photons as they are described by Jan Sammer?
No, I am still working in the 1D "Lineland" motif and the natural consequences of that dimensional construct did not produce a doubly oscillating photon. Also, I don't think that Larson's "vibration 2" is going to show up, either. That always seemed like a device to me, so he could get the observed half-units in certain properties.
As it stands now, when the birotation is all in time (imaginary axis), the net motion is an oscillating speed change in space--thermal motion--adding and detracting from the progression of space. When the birotation is all in space (real axis), the net motion is an oscillating speed change in time--photon. But it isn't an either-or situation... there is a full range in between, where there are both fluxuations in space and time (real AND imaginary axes) which give all the characteristics of EM radiation.
So the interesting conclusion is that "light" is actually temporal "heat" (and vice versa)--just the other perspective.
bperet
Tue, 06/30/2009 - 17:20
Permalink
Observer-free Simulation
I think this should be theoreticaly impossible, because the motion of the observer is always afeects the observee, making these two inseparable.
From what I have found, it is not that the observer changes the observee, but that the observer limits the interpretation of the observee. I CAN create an observer-free simulation, but it is rather pointless because no useful information can be obtained from the simulation. It's just a bunch of integers in the computer memory.
Take the Doppler effect for example. Without relating the frequency of light to the motion of the observer, its frequency is indeterminate.
Exactly... in some cases, the "observer" is actually the environment--the reference system. In the RS, the unit speed (speed of light) of the progression forms the "observer" reference frame from which other motions are measured.
What I am doing with the simulations is to explicitly define the characteristics and attributes of the observation process, so the limiting factors are known variables (not assumed, as in conventional science). That is where projective geometry comes in handy.
Horace
Thu, 07/09/2009 - 16:06
Permalink
This leads to an interesting
This leads to an interesting definition definition of the "environment".
Environment is a set of motions sharing similar characteristics (e.g. omnidirectional expansion in time...)
bperet
Fri, 07/10/2009 - 11:32
Permalink
Environments
For me, an "environment" is a frame of reference with a defined behavior; the concept of the "stage" against which things can be measured. Measurement can only be made if it is in reference to something else. That "set of motions sharing similar characteristics" becomes a transformation matrix--a constant rate of change that is used as the reference point of measurement.
In the natural reference system (scalar), that rate of change is for everything to move apart at the speed of light--what Larson calls the "natural datum" of unit speed. So motion, and hence manifestation, is anything that differs from the background environment of the speed of light.
I find I use several environments... scalar, linear, polar and "complex" in the simulations, where I can represent multiple environments aligned on axes. A bit more confusing--but a lot more revealing!