This is the first fully usable version of the proyect (more about it here). It allows the creation of sequential programs with variables that can be modified manually on runtime and is completely compatible with VR headsets and partialy with PCs. Things that can be done: Write your own programs on HTML Run the program Modify the program Work with variables Build your own program from scratch Scenes available to play with Sample program Sample program & build-your-own Write your own programs on HTML Even though you only need to know the basics of HTML to write programs with this proyect, I would recommend to get used to work with A-Frame so you can get the most of it....
ViRto
Some useful links
- Thesis in spanish (.pdf)
- Slides (.pdf)
- Videos
- Suggested demos to be tried:
- Demo 18: First idea of VR IDE, programs are built vertically and elements are created through a menu.
- Demo 19: Second idea, programs are built horizontally and the instructions are parametrizable. Values are constants.
- Demo 20: Similar to the Demo 19, but environment changed and now variables are available.
- Demo 22: Adds conditional and repetitive instructions to the Demo 20.
Review on colliders
This few past weeks I remembered a small issue I had from the begining related to the ‘realism’ of the grab and touch. I’ve already developed the component box-collider, which implements an OBB collider (i’ll explain this later) but it’s performance was worse than what I thought when I designed it. I decided to invest some time doing some research about how colliders work and creating components to use them on A-Frame, I came out with 4 types of colliders:...
Including parameters to instructions
I decided to put aside the conditional execution until I had a solid variable and condition evaluation system, and I put an intermediate milestone between a non-parametric execution and that objective of a fully functional variable manipulation and logical operators evaluation system on the execution of programs that allow ‘static’ variable and constant assignements (meaning they don’t vary with time but are intended to do so as the developments continues)....
Interaction improvements
My thesis mentor gave me the idea of improving the interaction by implementing a previewing dynamic that allows the user to view how would the program look like if a certain instruction is added. I’ve took the previous demo 16 as the base to implement this preview and instead of overwriting the scene, I decided to create a new one to avoid anyone interested on following my progress having to navigate through the repository commits and start a webserver on their own to test it....
Creating iterative programs
I’ve been working on making a fully usable demo that allows the users to create sequential programs. Also, I’m exploring two different ways of creating instruction blocks, both of them implemented on the demo 16. How to use the demo 16: This demo implements two different ways of creating new instructions blocks, I’ll explain how to use each one: Use a static ‘panel’ to select the desired instruction:...
super-hands-component issue
The library aframe-physics-system which I’m using to add physics to my scenes supports 2 physics engines, cannon.js and ammo.js, but recently I started using the library super-hands-component and it’s component super-hands attached to the A-Frame component hand-controls in order to provide a more natural way to interact with the elements of the scene, but super-hands-component is only compatible with the cannon.js engine. The problem arises with the latest version of A-Frame, which breaks the support of cannon....
Iteration 3
On this iteration, the main objectives are: Ensure that the scenes can be used on PC and Oculus Quest. Create an element specifically intended for executing the program (a “run” button) Modify the program component so it creates a platform on which, by dropping the blocks, the user can create the program. Scenes created Demonstration of component “multidevice” On this scene, the component multidevice takes care of detecting if the device is a VR headset or not and on each case, initializes the corresponding controllers....
Iteration 2
On this iteration the objectives are to improve the comunication between components and start making simple programming-oriented components. Scenes developed Listening for entity collisions The scene represents a bunch of spheres bouncing and colliding, each time the spheres collide their color changes to red for a small time frame. To archieve this behaviour I created a component called “colorea_colision” that listens for “collide” events and changes the color of the attached entity for a short time....
Iteration 1
I don’t have a lot of experience programming on Javascript before and also, as A-Frame is a component-based framework, the objectives of this first iteration are becoming familiar with Javascript and A-Frame. This first scenes are very basic and not so interactive, because I used them as “prototypes” for the next ones, I decided to keep them to ilustrate my progress. Scenes developed Non parametric component This scene shows one brown sphere, it’s entity element on the DOM has the attribute “esfera_marron” set, which maps to the component with the same name....
About this blog
Hello! My name is Julián Sánchez and this blog is part of my bachelor thesis on Informatic Engineering. About the proyect This proyect aims to create a virtual environment in which, the users could build programs that allow them to move a virtual drone. The main focus is to exploit all the advantages of the virtual reality in contrast with the 2D environments, such as the well-known IDEs. Where did the idea came from?...