How can we create cyberspace for interactive education? What features and parameters are needed to experience a simple and well working 3D environment? How will we get to virtual shared playful education space? These are the questions of this article, mainly from the technology viewpoint this time.

I am located in Budapest, but it was remarkable how a friend in California, Joel was thinking the same way as I regarding the future of education. He already helped to create a computer for children and a 3D world to learn programming. We concluded that there is an enormous potential in interactive learning spaces. We both love the book/movie “Ready Player One” and would love to just get lost in such a 3D world.

ready player one movie scene

There are many solutions already – like Engage VR, zoe.com, uptale.io, pix vr or Mozilla Hubs, … . Still we felt, that none of them fulfilled all our expectations. There is still place for many similar – or one big integrated – space.

Another agreement seemed to be, that while the hardware part is mostly ready, on the software side important features are missing. For the moment, many companies and groups are developing their own solutions – Oculus?, Apple?, Valve? – instead of creating standards and common APIs and platforms. Market leaders try to dominate the market, gain users instead of agreeing on standards. Luckily there is a common denominator in their efforts, the 3D engines: Unity 3D and Unreal Engine.

engage VR meeting room teacher shows chinese characters

Our desired features for a Shared Learning Community

We started by listing out some important components that we would love to see. This is not a ready specification, these are just our ideas how such a system could look like.

Phase 1: Most important features

  • scriptable
  • editable persistent environment
  • multiplayer
  • multiplatform
  • database driven (my addition)
  • effortless entry (one link login)

Phase 2: additional features

  • dynamic 3D object loading
  • voice transfer

Phase 3: nice to have:

  • video transfer
  • camera tracking of head
  • camera tracking of hands

Scriptable 3D world

You can actually experience this in Minecraft Education Edition. You have a main avatar and additionally you have a small robot that you can program with code.

There are two options to learn programming:

  • a Scratch-like interface
  • Python
minecraft scripting like scratch

This Scratch-like interface is easy to use and understand. It looks like lego parts put together to form a colorful spaceship. You can get almost everything done using your mouse. I would show a 8-9 year old already this setup and she might get some challenges done herself.

Python programming looks much more serious. It is color coded – syntax highlighting – but there are symbols that are difficult to understand for a child and adult alike. What is “[]”, “{{ }}” and so on? There must be a solution get this real scripting part easier to read.

This small robot with the heart is a great addition, it even looks at you as you come near.

Editable persistent environment

Multiplayer first person shooter games like R6 Siege or Fortnite have an environment, that is “editable”, but all your changes will be gone with the session closing. It is spectacular, but it feels someway empty, you cannot leave your mark in the system, you cannot express your creativity.

It would be amazing to have an environment, that as customizable and persistent as Minecraft. You can log in, set up some bots to build a house for you. Or a dozen or a few hundred. This editing feature must have some kind of limitation so that people or not filling up worlds and do not post something outright illegal. For example as soon as a user posts pictures there must be a filter for porno. Not to mention if someone draws genitalia using boxes…

Machine learning can be used to evaluate all user contribution and sort out illegal / disturbing content. Users can have reviews and ratings and so it will be simpler to block and ban trolls out of the system.

Multiplayer

We want community and this means “multiplayer” in the digital world. Ideally this also means, that users from all hardware platforms can meet in the same space.

There is a backside of the story too: if you let users interact using words or pictures, the system owner has to take responsibility for these interactions: users must be protected from trolls, and any other harmfull interactions.

It is possible to share avatar type, position, direction, learning exercise without sharing words, voice or video feed. A good example is the sharing of Duolingo, where you can just see the progress of your friends and you will not interact with them inside the app.

Multiplatform

This simple means, that the system shall work across multiple hardware platforms. Users on different platforms can enter into the same space and interact with each other. Different platforms have different possibilities, this means if you look from the same position to the same direction, you will not always see the same. Number of objects appearing, number of users appearing, quality of objects (LOD level) can and will be different.

Database Driven

This is my point, it might sound weird in this context. This comes from my SAP background. There we developers tried to steer clear of constants in the source code. Everything was put into a database, one way or the other. This way if the constant changed, only that one table entry had to change, no compiling or building was necessary.

The following can be put into a database:

  • Lists
  • Learning exercises
  • Dictionaries
  • Interactive behaviour
  • Code lines / pseudocode

I can hear the loud outcry of some developers, “Are you nuts, putting code lines to tables? For what?” I think one key success factor of SAP was the open-source coding system called ABAP. It was open source even in the R2 version around the year 1981. That time it was revolutionary, that you, as a client, could open up any transaction in the system and started to debug.

If all constants are in a database, translations are easier to deploy, and you can have the “one system multiple languages” experience.

Effortless entry

Each unnecessary keystroke, click or millisecond pushes success away.

Both „virality” and „network effects” can suffer, if you need a long registration/login to experience something in the community space.  https://fourweekmba.com/virality-vs-network-effects/

To make things easier and give virality a boost it is possible to enter a multiuser space without login as a guest. Still this is seldom implemented. This in itself can be a unique selling proposition. Today the current state of WebGL enables amazing features in desktop and mobile phone browsers.

Additional features

Dynamic 3D object loading, voice transfer and so on are important features. For example today there are OpenCV machine learning models that are capable of tracking your head or hands using just a webcam. This way you can have head and hand gestures using a PC or MAC. Still this feature I would put into later versions.

Existing standards

A good engineer knows existing standards and is actively searching and learning them as they develop. There are some relevant standards, that can make such a 3D community space future ready.

gITF – Chronos Group 3D file format backed by Blender, Autodesk, Adobe, Google, …

X3D – Extensible 3D Graphics is the royalty-free open standard for publishing, viewing, printing and archiving interactive 3D models on the Web.

FBX – File format owned by Autodesk (Blender can also export in this format)

WebGL – 3D rendering in the browser (Supported by Unity 3D)

Conclusion

There is an enormous potential in shared 3D learning spaces. With good Unity 3D knowledge it is possible to create a basic WebGL prototype with the mentioned Phase 1 features even for a solo developer. Open standards for 3D / AR / VR spaces are sorely needed.

PS: There is already a “Ready Player Two” book published and I bet the movie is coming too 🙂