#Hololens – Adios #HoloToolkit, ahora tenemos #MixedRealityToolkit for Unity!

MRTK_Logo_Rev.png

Hola!

Durante las últimas semanas estuve escribiendo algunos posts para crear Hololens Apps donde no utilizaba HoloToolkit. Ahora es oficial que la version de HoloToolkit que conocíamos se ha modernizado y ha pasado a llamarse Mixed Reality Toolkit.

Esta nueva version trae algunos cambios grandes, entre los que tengo que mencionar el soporte oficial a Visual Studio 2017 y Unity 2017.1. En la página oficial del producto (ver referencias) podemos ver además los prerequisitos, el roadmap y diferentes links para comenzar a utilizar este nuevo Toolkit.

MixedRealityStack.png

Como en la version anterior, tenemos 2 versiones del producto: la version general para dar soporte a los nuevos Devices de Mixed Reality y la version específica para Unity3D.

En próximos posts escribiré un poco al respecto, sobre cómo utilizar este nuevo repositorio y que novedades trae si lo comparamos HoloToolkit.

Happy Holocoding!

Saludos @ Burlington

El Bruno

References

El Bruno, my posts

Advertisements

#Hololens – How to select an hologram, change size or position and more using #MRDesignLab

Hi!

Another cool feature we can add to our Mixed Reality Apps using the assets shared by the Mixed Reality Design Labs is

Add the feature to select an hologram, change size, change position (in 3D mode) or even remove the hologram in a scene.

This is very similar of what we do with the sample App included in the Hololens with the Hologram Gallery. The next image shows a sample of this scenario.

2017 08 07 Holo MRDesignLab Move Resize Holograms 02

As you can see we have the select action, the action menu and more.

So, once we have added the MRDesign Labs assets to our project, and we added the Hololens prefab to have the main features available for us, we will add a Capsule element to our scene. In order to do this, we need to add a Collection to “host” this elements, let’s go the menu [HUX / Create Collection]

I2

Inside the collection let’s add a Capsule 3D element. And change some properties of the collection hosting the Capsule.

  • Node List / Size = 1
  • Drag and drop the Capsule to the property Capsule 1 / Transform
  • Rows = 1

I3

Now it’s time to add some scripts and assets to the Capsule so we can have the features we promise some lines above.

Let’s add the following components into the Capsule element:

  • Sphere Collider, So we can have a “physical context” for this element in the virtual world
  • Compound Button (Script), this script will be the one who handles the interaction of the elements. Important, take a look at the Button State property
  • Bounding Box Target (Script), this script defines which actions are going to be attached the the context elements

I4

And after this, we can have a very functional App with a Sphere and associated actions to drag, Scale and Rotate. In next posts I will describe on how to customize the menu.

Source code sample (link).

Happy Coding!

Saludos @ Burlington

El Bruno

References

El Bruno, my posts

#Hololens – Tutorial para seleccionar un holograma, cambiar su tamaño o modificar su posición utilizando #MRDesignLab

Hola!

Otro de las funcionalidades que podemos implementar utilizando el Mixed Reality Design Labs kit para Microsoft Hololens, es

Agregar la capacidad de seleccionar un holograma, cambiar el tamaño del mismo, modificar su posición o eliminarlo de una escena.

Muy similar a lo que podemos hacer con la app de con la galería de Hologramas que viene por defecto en el device. La siguiente imagen muestra un ejemplo de este escenario

2017 08 07 Holo MRDesignLab Move Resize Holograms 02

Una vez que hemos importado los assets del MRDesign Labs, y agregado el prefab de Hololens, agregaremos una Capsule sobre la que trabajaremos. En primer lugar, agregaremos una colección para almacenar la Capsule. Esto lo podemos hacer desde el menú [HUX / Create Collection]

I2

Dentro de la colección agregamos un elemento 3D del tipo Capsule. Y luego editamos las propiedades de la Colección para que trabaje sobre esta Capsule.

  • Node List / Size = 1
  • Arrastramos la Capsule a la propiedad Capsule 1 / Transform
  • Rows = 1

I3

Ahora es momento de agregar un par de assets a la Capsule para poder tener las capacidades de funcionalidades de seleccionar el holograma, cambiar el tamaño del mismo, modificar su posición o eliminarlo de una escena.

En la Capsula agregamos los siguientes componentes:

  • Sphere Collider, para que el elemento sea “tangible” en el mundo virtual
  • Compound Button (Script), este script es el que se encarga de manejar las interacciones con el elemento asociado. En este elemento definimos el tipo de interacción con la propiedad Button State.
  • Bounding Box Target (Script), este script define en que acciones mostrar y ocultar el menú de acciones. Podemos definir las acciones que se habilitan y si la misma se muestra en modo Toolbar.

I4

Y con esto ya podemos tener una App completamente funcional con estos elementos en la misma. En próximos posts comentare los cambios que tenemos que realizar para personalizar el menú de interacción.

El código fuente del ejemplo se puede descargar desde aquí (link).

Happy Coding!

Saludos @ Burlington

El Bruno

References

El Bruno, my posts

#Hololens – Tutorial to use Buttons, Dialogs and more with #MRDesignLab (#HoloToolkit ++)

Hi!

Last week I wrote a post about Lunar Module. This is a sample App for Hololens, released by the Mixed Reality Design Labs team. Besides the sample App, tehre are couple of interesting Assets / Prefabs which are very useful if you are creating Hololens Apps.

So, after a question about this, I’ll write a couple of posts on how to use this assets. The first one is a very common scenario

Create and display a Button and OnClick display a Dialog with a message text and action button, ie: OK and Cancel.

This is a very usual scenario in any app. The output result will be something similar to the following image

20170801 Holo MRDesignLab Buttons 01

We start by clone the Mixed Reality Design Labs repository from GitHub (check references). There are a couple of submodules here for external tools, so it’s time to use your Git skills to get everything up and running.

Important: this package already have a HoloToolkit version which is compatible with Unity3D 2017.1 So we can use the latest and official Unity3D version for this sample.

I’ve created a unity3D package which includes HoloToolkit, MRDesignLab and HUX named “MRDesignLabs_Unity-0.1.3-Unity-2017.unitypackage”, you can download the package from here (link).

Let’s create an empty Unity project, clean the scene and import this package.

Important: At this point we usually add some elements from HoloToolkit to use the Hololens Camera, InputManager and more. This new package already have a Prefab which include all this elements. It’s named Hololens location [Assets / HUX / Prefabs / Interface].

I2

Inside this Prefab we find a CameraRig, InputMapping and more.

I’ll add a 3D Text element to display the output of the selected dialog message button.

And a few tutorial steps:

  • Add an empty elements to host and control out buttons. Name: DialogMenus,
  • Add 2 buttons in DialogMenus. From the prefab located at [Assets / HUX / Prefabs / Buttons / SquareButton.prefab].
  • Names SquareButtonDiag1 and SquareButtonDiag2

I03

  • In each new button the script [Compound Button Text] will allow us to define the text to be displayed in the button.

I04

  • Now it’s time to put this buttons in the Hololens interaction environment. I mean, in from of the Hololens user. We usually perform this with specific positions for each element. Now, thanks to MRDesignLans we have a new Prefabs which will arrange this elements in a more developer friendly way.
  • In [DialogMenus] let’s add a new component [Object Collection]. This new script will help us to arrange elements in a 3D environment

I05

  • Work on some script properties
    • Node List / Size = 2, we will use 2 elements, out 2 buttons
  • I’ve rename this elements to Dialog1 and Dialog2.
    • Inside [Dialog1 / Transform], let’s drag our [SquareButtonDiag1]
    • Inside [Dialog2 / Trasform], let’s drag our [SquareButtonDiag2]
  • I only want a single file of elements [Rows = 1]
  • The final property definition is similar to the following image

I06

Now it’s time to add some code to display the Dialogs in each button Click action. In [DialogMenus] let’s add a new script based on [Dialog and Menu Example]. This is a sample script which can help us to have this interaction.

  • We need to define on 2 the size on interactible elements, [Interactibles / Size = 2]
  • In [Interactibles / Element 0], drag [SquareButtonDiag1]
  • In [Interactibles / Element 1], drag [SquareButtonDiag2]
  • Our output will be a simple dialog element [Targets / Dialog Prefab = SimpleDialogShell]
  • Fill some other properties, like the output text

I07

The complete code can be downloaded from GitHub, however there are some interesting code parts to remark

  • On the OnTapped event we validate the clicked element
  • Based on this name we define if how many buttons the dialog will have
  • On the OnClosed event, we refresh the 3D text with the selected option

Full Source Code (link)
Happy Coding!

Greetings @ Mississauga

El Bruno

References

El Bruno, my posts

#Hololens – Tutorial para mostrar botones e interacciones con lo nuevo de #MRDesignLab

Hola!

Hace un par de días comente en un post que el equipo de Mixed Reality Design Labs de Microsoft Hololens, había liberado una serie de Assets / Prefabs que podían ayudarnos en la creación de aplicaciones para Microsoft Hololens. El escenario completo de ejemplo que publicaron fue el del juego Lunar Module.

Pues bien, alguien me pregunto si podía explicar cómo usar alguno de estos assets, así que hoy comenzare con un escenario de lo más útil cuando creas una aplicación

Crear un botón y mostrar un cuadro de dialogo con un mensaje de texto y botones OK y Cancel.

Vamos que es el modelo tradicional de una notificación de toda la vida. Algo similar a esto

20170801 Holo MRDesignLab Buttons 01

Pues bien, lo 1ro que tenemos que hacer es clonar el repositorio de Mixed Reality Design Labs (ver referencias). El mismo usa además un par de submódulos con otras herramientas, así que toca pegarse un rato con Git para poder tener todo en forma en local.

Un detalle importante es que este paquete ya posee una version de HoloToolkit que es compatible con Unity 2017.1.0f3, así que podremos utilizar la version oficial de Unity 2017 para este ejemplo.

Yo he creado un unity3D package con HoloToolkit, MRDesignLab y HUX llamado “MRDesignLabs_Unity-0.1.3-Unity-2017.unitypackage”, que se puede descargar desde aquí (link).

En un nuevo proyecto de Unity, importamos este paquete y eliminamos todos los elementos de la jerarquía en la escena.

Importante: En este punto usualmente comenzamos a agregar los assets de HoloToolkit para interactuar con los gestos o la Cámara. Este nuevo paquete posee un elemento llamado Hololens en la ruta [Assets / HUX / Prefabs / Interface] que ya posee todo lo necesario para una aplicación para Hololens.

I2

Podemos ver que dentro del mismo hay CameraRig, InputMapping y mucho mas. El siguiente paso es agregar un elemento 3D Text que será en el que mostremos el resultado de las acciones seleccionados en el cuadro de dialogo.

A continuación:

  • Agregamos un elemento vacío para contener nuestros botones. Yo lo he llamado DialogMenus, es importante el nombre ya que volveremos al mismo en pasos posteriores
  • Dentro del mismo agregamos 2 botones del tipo [Assets / HUX / Prefabs / Buttons / SquareButton.prefab]. Los he llamado SquareButtonDiag1 y SquareButtonDiag2

I03

  • En cada botón el script [Compound Button Text] nos permite definir el texto del botón.

I04

  • Y a continuación debemos posicionar los botones en el espacio frente al usuario de las Hololens. Esto usualmente lo hacemos posicionando los elementos de forma individual, sin embargo, el MRDesignLans posee un par de Prefabs que nos ayudan a hacer esto de forma más simple.
  • En el elemento [DialogMenus] agregamos un nuevo componente de tipo [Object Collection]. Este script nos permite acomodar de forma simple elementos en un espacio 3D

I05

  • Definimos las siguientes propiedades del script
    • Node List / Size = 2, trabajaremos con 2 elementos para acomodar. En este caso son nuestros 2 botones
  • Renombramos los elementos a Dialog1 y a Dialog2.
    • En la propiedad [Dialog1 / Transform], arrastramos el elemento [SquareButtonDiag1] desde la jerarquía de elementos.
    • Hacemos lo mismo con [Dialog2 / Trasform], arrastrando el elemento [SquareButtonDiag2]
  • Definimos que solo tendremos una fila de elementos, [Rows = 1]
  • La definición final queda de la siguiente forma

I06

Ahora solo queda agregar un poco de lógica para controlar la interacción con los botones y presentar los cuadros de dialogo. En el elemento [DialogMenus] agregamos un nuevo script [Dialog and Menu Example]. Este script posee el código mínimo necesario para realizar esta interacción.

  • Definimos el tamaño de elementos interactivos en 2, [Interactibles / Size = 2]
  • Arrastramos a [Interactibles / Element 0], el elemento [SquareButtonDiag1]
  • Arrastramos a [Interactibles / Element 1], el elemento [SquareButtonDiag2]
  • Definimos que el foco de output será un elemento de tipo [Targets / Dialog Prefab = SimpleDialogShell]
  • Completamos el texto a mostrar en cada interacción, como muestra la siguiente imagen

I07

El código de la solución completo se puede descargar desde GitHub, sin embargo, lo interesante se puede ver en esta porción de código

  • En el evento OnTapped se valida el tipo de elemento que el usuario ha seleccionado.
  • De acuerdo al nombre del elemento se muestra un cuadro de dialogo con uno o 2 botones
  • La función OnClosed se encarga de mostrar en el Texto 3D el elemento seleccionado.

El codigo se puede descargar desde aqui (link)
Y eso es todo como explicación, espero que sea de utilidad.

Happy Coding!

Saludos @ Mississauga

El Bruno

References

El Bruno, my posts

#Hololens – Lunar Module, new sample App with some very cool PreFabs for motion controllers

p1.jpg

Hi !

Last week I spent too much time between Cognitive Services and UWP. Between all this AI stuff I also put some times to try, test and understand on of the latests samples available for Hololens Developers in the Holographic Academy: Lunar Module.

The sample is very complete, the main goal is to recreate a Lunar Module game here the objective is to help the Lunar Module land safely in the Moon. We can use hand gestures or and XBox One Controller to control the lunar module. The HoloApp will also scan the environment to find a “landing plane”.

So, the cool stuff, is to go to the Github repository and review some of the assets included in the sample. I will remark 2.

Simple Menu Collection. Finally we have an easy way to create 2D interactive menus to be used in our Hololens Apps..

p2

Hand Coach, other cool one!. Every time we create and App for Hololens, there is a chance to include a tutorial on “how to use this app”, which is usually knows as a tutorial. This Prefab have some animations on how a hand can interact using gestures with holograms in the Hololens world.

P3

Happy Unity3D coding!

Greeting @ Burlington

El Bruno

References

El Bruno, my posts

#Hololens – Nueva Sample App: Lunar Module, excelente juego de PreFabs para motion controllers

p1.jpg

Hola!

La semana pasada entre UWP y Cognitive Services, dedique unos minutos a probar uno de los últimos ejemplos que hay en la Holographic Academy: Lunar Module.

Este ejemplo es bastante útil, se trata de controlar el descenso de un módulo lunar y utilizando nuestras manos o un XBox One Controller ayudar a que la misma aterrice de forma correcta. En este contexto, la solución se encarga de escanear el entorno para encontrar un plano lo suficientemente grande para poder aterrizar el módulo y además brinda la posibilidad de controlar el módulo.

En el repo de Github hay varios Assets, sin embargo, hay 2 que son especialmente útiles

Simple Menu Collection, al fin tenemos un asset que nos permita generar de forma rápida un menú 2D dentro de nuestro espacio en Unity para poder interactuar con el mismo.

p2

Hand Coach, otro asset que nos viene de maravilla en los proyectos de Unity. En la mayoría de apps de Unity, por lo general al comienzo de las apps hay un “modo tutorial” donde se explica cómo se interactúa con la App. Este Prefab posee una serie de animaciones en Unity con los gestos y acciones básicas que podemos hacer con las manos en una app de Hololens.

P3

Happy Unity3D coding!

Saludos @ Burlington

El Bruno

References

Windows Dev Center, Lunar Module
Windows Dev Center, Motion Controllers
GitHub, Mixed Reality Design Labs

El Bruno, my posts

#Opinion – News and more news on Artificial Intelligence and we can expect in the near future

Hello!

At the beginning of this year, I participated in a meeting with the general manager of Avanade Canada at the Microsoft Technology Center, where we presented our global Vision on technologies and trends for this year. It’s named “Avanade Techvision 2017” and this year is the first time that all the topics we talked about were covered under a general theme: Artificial Intelligence.

Avanade-Tech-Vision

Over the next 5/10 years evolution in AI will impact on the way the society works. Obviously here we need to talk about topics such as creating new jobs, augmenting and optimizing existing jobs with devices like Hololens, and many other changes. In example, in the near future, thanks to artificial intelligence, we can detect signs of diabetes in our body, only using the camera of our smartphone. A photo analyzed in the device, supported by a DNN, can quickly tell us if we are at risk for diabetes. (See references)

However, an interesting detail in this aspect is that the current hardware needs to upgrade at lot to get there. Nowadays, the consumer focused hardware is the one that has to accelerate to be able to live up to it. In one hand we have big players, like specialized laboratories with enough money, and they already have special computers which give them the ability to apply AI algorithms. The big challenge is like bringing the IA to the final consumer in an affordable way. Without large data exchange costs using the cloud, and with processors which are battery efficient.

Yesterday I wrote about the new HPU processor with AI capabilities that will be incorporated in the new version of Hololens. Microsoft has already been responsible for developing the V1 of this HPU processor, and it is no wonder that this new processor, which some call “AI co-processor”, not only has applications in Hololens, but also in other devices such as smartphones, laptops and tablets.

Today I read in Wired the article “The rise of AI is forcing Google and Microsoft to become Chipmakers“, which describes the approach that Google also has about it. HPU incorporates the concept of a re-programmable chip, where for example for Hololens you can add AI capabilities for voice recognition and recognition of movements and gestures with the hands (naturally necessary in Hololens).

Another example is Google. Google works on a processor called Tensor Processor Unit. This processor also implements DNN capabilities, and has saved Google the creation of 15 Data Centers for speech-recognition-related activities. I guess, that 15 Data Centers out of the house improvement budget, should be an interesting savings for the board of directors of Google.

Note: TPU is nominated based on TensorFlow. TensorFlow is an AI system originally created by the Google Brain team and was published in open source mode a few years ago. It’s the core of a lot of Google’s internal work and is widely supported by the AI developer community.

 

And if this were not enough, the CEOs of a couple of big companies start to have some not nice words between each others on the Artificial Intelligence world. In this case it is Elon Musk (aka Tony Stark) who in tweet said that the knowledge of Mark Zuckerberg on AI is limited.

In reality, this arises because they both have two very different views on how to use and legislate artificial intelligence. Elon Musk wants to regulate the use of AI, in his words:

(AI) presents fundamental risk to the existence of human civilization.

According to Elon, you won’t have to spend much time before we see robots killing people down the street. (If you are thinking on a Terminator Rise of the Machines scenarios, you are wrong, I’ll write about this later in a new post)

Marc Zuckerberg has another completely different view, MZ says:

I’m optimistic. And I think people who oppose and try to paint these apocalyptic scenarios, I just don’t get it. It’s really negative and, in fact, somehow I think it’s pretty irresponsible.

Beyond all this, what is clear is that all the biggest Tech companies in the world are investing (one way or another) in something related to Artificial Intelligence. Every little advance that is made on the subject will affect the way we live and work.

I am almost sure that my children will not have the need to learn how to drive. In 10 years, cars will be electric and most will be autonomous. Depending on where you live, you probably don’t have the need to learn how to drive, because a car (which doesn’t have to be yours) will be the one to help you move when you need to travel from one place to another.

Scenarios like the previous one, are not far from being a reality. And what today seems to us science fiction, in a few years will be our day to day.

Greetings @ Burlington

El Bruno

References

#Opinión – Lo que invierten los grandes en Inteligencia Artificial y que podemos esperar en un futuro cercano

Hola!

A principio de este año, participe en una reunión con el General Manager de Avanade Canada en el Microsoft Technology Centre, donde presentamos la visión global de Avanade sobre tecnologías para este año. La llamamos “Avanade TechVision 2017” y este año es la primera vez que todos los tópicos sobre los que hablamos estaban englobados bajo un tema general, la Inteligencia Artificial.

Avanade-Tech-Vision

Nosotros sabemos que durante los próximos 5/10 años la evolución en este aspecto impactara en la forma en la que nos desenvolvemos en la sociedad. Obviamente aquí tocamos temas como la creación de nuevos trabajos, la especialización y optimización de trabajos existentes con dispositivos como Hololens, y muchos otros cambios más. En pocos años, y gracias a la Inteligencia Artificial, podremos detectar signos de diabetes en nuestro organismo, solamente utilizando la cámara de nuestro smartphone. Una foto analizada localmente por un proceso de DNN, nos comunicara si tenemos riesgo de padecer diabetes. (ver referencias)

Sin embargo, un detalle interesante en este aspecto es que el hardware se está quedando atrás. En realidad, el hardware de consumo es el que tiene que acelerar para poder estar a la altura. A mi entender, laboratorios especializados con el dinero suficiente, desde hace tiempo que poseen ordenadores especiales, que les brindan la capacidad de aplicar algoritmos de AI. El gran reto es como llevar la IA al consumidor final de forma barata, sin grandes gastos de datos utilizando el cloud, y con procesadores que no consuman mucha bateria.

Ayer escribí sobre el nuevo procesador HPU con capacidades de AI que se incorporara en la nueva versión de Hololens. Microsoft ya se ha encargado de desarrollar la V1 de este procesador HPU, y no es de extrañar que este nuevo procesador, al que algunos llaman “AI co-processor”, no solo tenga aplicaciones en Hololens, sino también en otros dispositivos como smartphones, laptops y tablets.

Hoy leo en Wired el artículo “The rise of AI is forcing Google and Microsoft to become Chipmakers”, donde describe el enfoque que también tiene Google al respecto. HPU incorpora el concepto de un chip reprogramable, donde por ejemplo para Hololens se pueden agregar capacidades de AI para reconocimiento de voz y reconocimiento de movimientos y gestos con las manos (naturalmente necesarios en Hololens).

Google, por su parte, trabaja en un procesador llamado Tensor Processor Unit. Este procesador también implementa capacidades de DNN, y ha ahorrado a Google la creación de 15 data centers para actividades relacionadas con el reconocimiento de voz. Supongo yo, que 15 data centers fuera del presupuesto de gastos del hogar, debe ser un ahorro interesante para el Board of Directors de Google.

Nota: TPU viene nominado en base a Tensor Flow. TensorFlow es un sistema de AI creado originalmente por el equipo de Google Brain y que fue publicado en modo Open Source hace unos años. Es el core de mucho del trabajo interno de Google y está ampliamente soportado por la comunidad de desarrolladores de AI.

Y por si esto fuera poco, los CEOs de un par de grandes empresas se comienzan a dar palos relacionados con la Inteligencia Artificial. En este caso se trata de Elon Musk (aka Tony Stark) que en tweet dijo que el conocimiento de Mark Zuckerberg sobre AI es limitado.

En realidad, esto surge porque ambos tienen 2 visiones muy diferentes respecto a cómo utilizar y legislar la inteligencia artificial. Elon Musk quiere regular la utilización de AI, en sus palabras:

(AI) presents fundamental risk to the existence of human civilization.

Según Elon, no tendrá que pasar mucho tiempo antes que veamos robots matando personas por la calle.

Marc Zuckerberg tiene otra visión completamente diferente, MZ comenta:

Soy optimista. Y creo que la gente que se opone y trata de pintar estos escenarios apocalípticos, simplemente, no lo entiendo. Es realmente negativo y, de hecho, de alguna manera pienso que es bastante irresponsable.

Mas allá de todo esto, lo que si está claro es que todos los grandes están invirtiendo (de una forma u otra) en algo relacionado con la Inteligencia Artificial. Cada pequeño avance que se haga en el tema incidirá en la forma en la que vivimos y trabajamos. Yo estoy casi seguro, que mis niños no tendrán la necesidad de aprender a conducir. Dentro de 10 años, los coches serán eléctricos y la mayoría serán autónomos. Dependiendo del sitio donde vivas, es muy probable que no tengas la necesidad de aprender a conducir, ya que un coche (que no tiene porque ser el tuyo) será el que te ayude a moverte cuando necesites viajar de un sitio a otro.

Escenarios como el anterior, no están lejos de ser una realidad. Y lo que hoy nos parece ciencia ficción, en unos años será nuestro día a día.

Saludos @ Burlington

El Bruno

References

#Opinion – Some news on #Hololens V2, HPU V2 and how #Microsoft choose the hardware path, build their own Chips

Hi !

I was planning to write this post yesterday, however, a Canadian wasp decided that it was better to leave me almost immobilized by attacking my foot and forcing me to plan my agenda differently.

Well, Marc Pollefeys (director of Science in the Hololens team) shared some information about the new version of Hololens. Until the code name is made public, I will refer to the new device as Hololens 2. What he tells us is a simple and powerful message:

The new HPU chip included in Hololens 2 will have Deep Neural Networks capabilities. (It means Artificial Intelligence!)

Let’s not forget that this is not new for Microsoft, but let’s also keep in mind that Microsoft is not dedicated to the design and creation of chips such as those we know from Intel or AMD. For years until now Microsoft is investing in R&D for a new generation of chips. Those chips are currently used mostly in the Azure Data Centers. In fact, it all started back in 2012, when Doug Burger presented a risky bet to Steve Ballmer: Project Catapult.

Doug commented to Steve that, in the near future, Internet would be controlled by a handful of group companies that would provide essential services for users. This “new Internet” would require a different architecture as a base platform. If Microsoft wanted to be part of this “new Internet”, they should not only build the OS and the Software, but they also had to take care of the hardware of the servers, manage the networks and more. It seems that at this moment Steve Ballmer change his face into a Gear of Wars Bad Boss, his eyes were all red and he responded with a “I thought this would be a research meeting, non a strategy one.

Note: I have been fortunate to meet Steve Ballmer face to face, and the energy that he has is impressive. While I have seen him in happy and animated mode, I imagine that a 1:1 in discussion mode should require special skills to pull the conversation forward.

And the Qi Lu appeared (he was in charge of Bing), he was added into the discussion. It seems that Qi Lu also had a similar idea in his head: the need to build re programmable chips, allowing upgrades much faster than those that were running at that time.

And there was more, the Bing team had already started to work on this, from here we began to read the term FPGA much more often in some areas. (FPGA: Field programmable gate arrays). And that’s me on this part of the story. This is quite interesting and I recommend reading the Wired article (see references).

Let’s go back to 2017 with Hololens 2 and the new HPU 2 (HPU: Holographic Processing Unit). The task performed by the HPU in Hololens version 1 is to coordinate, analyze and present a coherent result of the information obtained by the device of all sensors. In other words:

The HPU merge information from different sources: motion sensor, camera, depth sensors and infrared camera sensors, with all this information the HPU is capable to determine our position in the space around us. With this information, holographic projectors can determine how and where to position the holograms that are projected in our field of vision.

To this day, this type of processing is something that is unique to the Hololens. And if it is combined with a GPU, a CPU and a battery, it allows Microsoft to have a 100% autonomous untethered device: Microsoft Hololens 😀

Update: Thanks @AlexDrenea for some typos help here!

Now, what would happen if this processor, also has some kind of DNN capacity. In some blogs they called it “AI co-processor” and we can think that it could help in tasks such as voice recognition, face detection, shape detection, image analysis and more. The first thing they have presented during CVPR17 is how these new capabilities can be used to improve Hololens’s hand tracking and hand gestures capabilities. This is the demo recorded by a conference assistant

Clipboard02.png

Now comes the time to think that we can do with a device that “does not have to constantly send all this information to the cloud”, many of these tasks will be done in local. This will allow for more fluid applications, much more natural interactions and another couple of interesting surprises.

What is true is that 2018 will be a year where we will see what’s new Hololens 2 and surely we will have many interesting surprises along the way.

Greetings @ Burlington

El Bruno

References

PS: This is my foot 12 hours after the “Bruno vs The Wasp” moment

ee7db6f7-37c7-451b-8dae-4a13e9e6d782