There exists a lot of software devoted to different branches of sciense and engineering. However serious engineereng problems include different branches of physical phenomena. For example problems of virtual reality of engineering objects are indissolubly connected with simulation of motion. Otherwise motion can depend on a lot of factors. Currents of artificial satellite equipment interacts with Earth's magnetic field. So we should simulate the currents and the field. Control system of satellite may contain Spin-stabilisation. In this case we should simulate gyroscopes. Control systems of aircrafts and spacecrafts contain different sensors and we should simulate those behavior. Motion of aircraft depends on its aerodynamics. We also should include aerodynamics into the framework. Rockets, spacecrafts and aircrafts are objects those may be deformed by different forces. If we wish to visualize such deformation we should simulate elasticity. We should have software that enables us potentially include simulation from different branches of science and engineering.
Usage of different software requres a large efforts. I think that all software should be unified into single framework. Objective of this site is proof that it is possible. Main idea is very clear. Modern math has single framework. It is Category theory . This framework is very abstract and universal. Usage of it enables me to merge a lot of science and engineering branches. There exists a lot of scienific source code. It can be very easy integrated into framework. However I encountered with following problem. A lot of code is so bad that it is easy to write new code than use it. According my opinion resarcher who cannot formulate own domain by objects do not understand the domain. This article is a short surway of the framework.
Every object domain phenomena may be decomposed to elementary objects. There are different links between these objects. For example, the position of a material point may be expressed in a reference frame. Thus, we have a link between the point and the frame. This link contains coordinates of the point.
A second example of a link is contained in math processing of information. We have an information provider and a consumer of its information. A consumer and the provider should be linked. Some objects are both providers and consumers. They are information processors. If we use such a processor, we should link it to information provider(s) and to consumers. In this case, we have information links.
According to the multiple inheritance principle, every object may implement a set of interfaces. For example, any object that sets a trajectory of a material is the object from the positioning domain. However, it consumes information about trajectory parameters. Hence, it is also a consumer of information. Thus, this object implements two interfaces. The object as an object of the first interface should be linked to a material point and a reference frame. However, as an information consumer, it should be linked to information provider(s) as well. If we have elementary objects and facilities for linking them, then it is possible to simulate at once a very completive phenomenon. A graphics domain configurator provides facilities for phenomenon construction by setting objects and linking them.
The formula editor enables to enter different formulas. These formulas are used for definition of signals, transformation of 3D figures, definition of right parts of differential equations, processing of the UniversalEngineeringFramework, and definition of size and color of figures, etc. The formulas may contain real, integer, boolean, vector variables etc. In the CategoryTheory project formula, the editor operates even with Galois fields. This editor is shown in the following picture:
There are the following rules for formula editing. Click the mouse on a symbol. Then, drag the symbol to the required place. Click the mouse once again after the gray cursor appears. Double click sets the symbol behind the former set symbol. If you set an exponent then drag the symbol to the right top of the base. If you set the logarithm base, then drag to the right bottom of the base. If you want to delete the symbol, then set the mouse cursor on it and click the mouse after the gray cursor appears. You can use a school formula notation. For example, sinx, cos2x are accepted.
Usually, every developer or company has its own projects of object domain. This software does not require discarding of existing projects. Any object domain project may be included to this software. If you wish to include your project or its part, then you should develop an adapter, compile the class library, and link it to this software. The adapter should contain one or more classes that implement one or more interfaces of this software. A more profound description of these interfaces is contained in the developer's guide.
To begin working with this software, it will useful to consider some examples. The first example is devoted to relative motion. The situation of relative motion is shown below.
We have two fixed reference frames (Frame 1 and Frame 3), and we define a motion trajectory of Frame 2 relative to Frame 1. We wish to define the parameters of the relative motion of Frame 2 with respect to Frame 3.
First of all, we should set two fixed reference frames. We put two
objects on desktop. These objects correspond to Frame 1 and Frame 3. Then we use
the property editor of each object.
This editor enables us to enter the coordinates and the transformation matrix of reference frame. After this action,
we will define the formulas of Frame 2. We use the Formula transformer component
for this purpose. We enter seven formulas. The first three define: x(t), y(t), and z(t).
The last four formulas define angular evolution (we use the components of orientation quaternion). Then, we put
the Moved Frame object
that is a moved reference frame. Then, we connect all the objects as in the diagram below:
The directions of the arrows coincide with
the association direction. An arrow from Frame 2 to Frame 1 means that Frame 2
knows about Frame 1, since the position and orientation of Frame 2 depends on the position and
orientation of Frame 1. However, Frame 1 should not know about Frame 2.
Similarly Frame 2 knows about Motion equations. The final step is a setting the Relative
measurements component
for relative measurements and Graph
for the graph indication of the relative motion parameters. The property editor of the graph indicator enables us to show
the parameters of the relative motion as in the picture below:
This example is very simple. However, we can use a lot of reference frames, like it is exposed in the following picture:
We have the relative motion and the relative motion parameters of these frames. We can link a virtual video camera, a celestial body, or a spacecraft with every frame. Then, we can to observe the coelosphere through a virtual camera.
So we have an excellent tool for virtual reality. It is only one of the features of this software.