The activation of a simulation starts as soon as the user scans with the camera of your device an image target which will refer to a specific part of the ship or even a set of parts. Once the target image is identified by the system and the corresponding data is collected from the database then the digitized form of the piece and various information about it will be displayed on the screen of his device.
So the basic idea of the general structure of the simulation is to organize a digital scene which will include two parts. It will be divided into the space where the digital object will be displayed and the space where all its information will be displayed. In the first section, the ship ‘ELENI P.’ will be displayed with the pieces marked corresponding to the target image, so that the user can observe and easily understand the exact place where the pieces were placed. The second section, will include a menu through which the user will be able, by pressing a digital button, to select the type of information he would like to be displayed for the highlighted piece or pieces of the shipY. The types of information offered by the system will be images, video and description.
The design of the basic structure of the simulation is quite important and is the capture of the basic idea for the implementation of either a software or hardware system. Of course, during development, there may be changes and various additions to the initial design, but the creation of diagrams is a necessary step to begin the implementation process.
Development of the Augmented Reality Application
Developing an AR application involves selecting the appropriate technology to create the desired experience. There are many different AR platforms available, each with its own set of features and capabilities. Some of the most popular platforms include ARKit, ARCore and Vuforia. These platforms provide developers with tools to create AR applications that can be run on a variety of devices, from smartphones to dedicated AR headsets.
The Vuforia platform was used to develop the AR application for the ‘SaveWoodenBoats’ project, which has a multitude of tools as well as support for various techniques for implementing augmented reality applications.
Implementation of the Augmented Reality Application
Developing the AR application requires a combination of programming skills and creative thinking. The application must be able to detect the user’s location in the real world and present digital objects to the user’s device. This requires a deep understanding of computer vision, familiarity with a game engine such as Unity or Unreal, and expertise in programming languages.
Specifically, this AR application was implemented in the Unity game engine as well as the C# programming language.
Unity game engine
Unity is a multi-platform game engine developed by Unity Technologies. It is mainly used to develop video games and simulations for computers, consoles and mobile devices. The augmented reality system of ‘SaveWoodenBoats’ will be implemented using the Unity game engine.
One of the key features of the Unity engine is its ability to create games for a wide range of platforms. It supports game development for PC, Mac, Linux, iOS, iOS, Android and a variety of console platforms such as Xbox, PlayStation and Nintendo Switch. This allows developers to reach a wide audience without having to worry about platform-specific development.
Unity also offers a wide range of tools and features to help developers create games and interactive content. These include a visual editor that allows developers to create and edit their game levels and environments using a drag-and-drop interface, a scripting system that supports both C# and UnityScript programming, and a range of tools for creating and importing elements such as 3D models, textures and sound files.
In addition to its basic development tools, a range of services are also offered to help developers in creating and publishing their applications. These services include the Unity Asset Store which is a marketplace for game assets and tools, and Unity Cloud Build, which allows developers to automate the build process for their games.
Another key aspect of Unity is that it supports Virtual Reality and Augmented Reality development. It offers a range of tools and features designed specifically for creating VR and AR experiences, including support for popular VR and AR devices such as the Oculus Rift and HoloLens.
In conclusion, Unity is a powerful and flexible game engine that enables developers to create games and interactive content for a wide range of platforms. Its comprehensive set of tools and features, as well as its support for VR and AR application development, make it a fairly popular choice.
C# programming language
Most of the mechanisms and interactions with the digital objects of the AR system simulation will be developed by implementing programs in the C# programming language called scripts.
C# (pronounced “C-sharp”) is a high-level object-oriented programming language widely used in the development of modern applications, including games. Within the Unity game engine, C# is the main programming language used to create scripts and control the behaviour of game objects.
One of the key advantages of C# in the context of Unity is its flexibility. C# can be used to create a wide range of game mechanics and features, such as player movement, creation of AI enemies, laws of physics, animation, and more. It is also suitable for creating custom tools and utilities for the Unity editor, such as custom inspectors and editors for various game assets.
In Unity, programs in C# are usually associated with game objects as components. These programs can then be used to control the behavior of the game object, such as moving it, rotating it, or changing its appearance. Programs can also interact with other game objects and game components, allowing developers to create complex systems and behaviours in their games.
Finally, C# is essential for developing applications in the Unity engine. It also offers a number of features that make it well suited for game development. It has a large library and a wide range of third-party libraries that can be used to add additional functionality to games.