Telling use case stories with Unity3D and MarkLogic


I have been working from time to time with Unity3D for about 3/4 years. I first had a look while I was producing/supervising digital books for children (the trailer still exists online). 
Unity3D is full featured game engine but it's also a wonderful environment to tell stories. The stories can be 2D, as used in the books, but Unity is primarily a 3D environment. This is where it becomes interesting from a professional perpective.


Business case: from idea to live environment

On the one hand MarkLogic is a great data platform to store, enrich, contextualise and link structured and unstructured data. MarkLogic provides a lot of capabilities including search and query for full-text and geospatial data. MarkLogic also provides the ability to extend core REST services with bespoke services with their own business logic and very close to the data.

On the one hand with Unity3D, you can create an environment, access a catalog of preexisting assets (asset store) and or libraries in order to create a real-life simulation.

If you connect the two, you have the ability to quickly deploy end-to-end scenarios to illustrate how fast MarkLogic can help deploying new business use cases.

In-store customer experience

In the below example (created 2 years ago for a demo jam session), the objective of the demo was to illustrate a real-life use case based on an operation datahub.  

The scenario targets retailers operating in multiple countries with customer data collected on different siloed systems. When the customer enters a store, his mobile is automatically detected (using mobile app and beacon), the mobile apps then notifies MarkLogic which generate the customer 360 and push it to a shop assistant tablet.


The Unity3D app is used to display the store floor and runs on an iPad. During the demo, the customer mobile app (created for the demo) detects Beacons in range, the customer is actually real (we used Beacons from Estimote), the mobile app notifies MarkLogic by calling a REST extension developed in MarkLogic, the customer360 is pushed to the Unity3D iPad App by MarkLogic using a socket.io channel and this App displays an avatar and its 360 view on the store floor.


The customer360 is generated on the fly using semantics and inference. The overall logic of this generation is described in the video of a previous post. 

The iPad App can also perform update in the customer profile which is synchronised with MarkLogic (MarkLogic being an operational data hub , one of the objectives of the demo was to perform read and write on the customer 360).

Overall demo required less than 10 days (3D front-end on iPad, Mobile App also created with Unity3D,  Beacon management, web front-end and customer 360 generation using semantics).

Below is a recording of a demo :







Insurance scenario

In this second demo, we use Unity3D to simulate a city environment. In this environment, all physical objects (cars, tractors, etc.) communicate with MarkLogic is order to push their current location. This location is enriched on the fly with customer360 (profile, contracts, last interactions, etc) in order to create a "context" and generate a notification using the MarkLogic reverse query mechanism. In the database, there are promotions, offers and contracts which "look" for a particular context (actually a query stored alongside the object with conditions on the context and which can mix value, text and geospatial conditions). the original blog post can be found here.


In real-life the the generated context (geolocation+ customer360) could also be used as input features for a prediction based on a trained model.




In the first part of the demo, events and notifications happen to a customer (contract upgrade, offers, partner push, supervision alert, etc.), all interactions are connected to MarkLogic and then in the second part of the demo, we visualise the client interaction timeline using a "standard" web front-end.




One more time, this environment is built based on an asset from the Unity store (the city and moving vehicles). It was lightly updated to manage interactions with MarkLogic and create the farmer scenario (< 7 days). 

Create dataviz

Unity3D can also be used to create nice data visualisations. It can of course present information in 2D or 3D. For exemple, in the below exemple we display an overlay of risk area on top of a realistic 3D city (just a concept developed in few hours with MarkLogic as a backend for geo-queries and metadata).




For a use case with geolocated data, there are pre-existing assets such as World Political Map which provide high quality geospatial environments to display complex data.



Create AR experiences

At last, Unity3D also proposes AR extensions (such as Apple ARKit) which allows to create AR experiences which are clearly upcoming use cases for data centric applications.
Combined with MarkLogic which can store structured and unstructured data, its opens new opportunities to create professional applications which render in context technical  documentations or data. For example, combined with the effectivity management described in this post , you can imagine fast deployment of maintenance applications using AR and contextualised contents.


To summary

In short, Unity3D can be considered as a alternative to web based front-end in order to create rich experiences for business applications and demos...



Popular posts from this blog

Domain centric architecture : Data driven business process powered by Snowflake Data Sharing

Snowflake Data sharing is a game changer : Be ready to connect the dots (with a click)

Process XML, JSON and other sources with XQuery at scale in the Snowflake Data Cloud