Canadian company, Kognitiv Spark, provides industrial augmented reality (AR) task support software. Built for the Microsoft HoloLens, their RemoteSpark platform uses proprietary software technology to deliver an AR solution for remote support to industrial workforces.
TEST Magazine, caught up with Kognitiv Spark’s co-founder & CTO, Ryan Groom, and senior infrastructure manager, Paul Archer, to discuss the software and hardware challenges the company overcame to become a leader in the field of industrial augmented reality solutions.
Kognitiv Spark have received accreditations and awards from organisations such as NATO, Microsoft, and the Atlantic Canadian Aerospace and Defence Association. Their clients include, among others, the Royal Canadian Navy, which uses Kognitiv Spark’s Mixed Reality Remote Assistant Support (MIRRAS) project, which leverages artificial intelligence and augmented reality, to improve ship maintenance and repairs on their vessels.
TEST: How was the idea for Kognitiv Spark developed?
Ryan Groom: “When experiencing the HoloLens and mixed reality for the first time, I knew this was the next wave of computing. The ability to be in your real world, but have it augmented with digital content, was a powerful paradigm which I believe will be the foundation of computing for the next 20 years.”
TEST: What is your favourite stage of the dev process in building AR/MR applications?
Paul Archer: “As infrastructure is near and dear to my heart, the final deployment to production is always a magical time for me. To see code that has been working its way through the development life cycle, finally come to life to share with the world, is quite an amazing experience.”
TEST: When developing RemoteSpark, were there any database/cloud platform challenges?
Paul Archer: “One of the single, biggest challenges we had was to accommodate clients who wanted to run a version of RemoteSpark locally, off cloud. As our system relies on Azure for functionality, we needed to provide a subset of cloud services on a local server.
“Fortunately, Azure now provides Azure Stack. Azure Stack allows us to deploy RemoteSpark to an on-premises configured server, so that Remote Spark will work on their network under their criteria.”
TEST: Did you have to devise any special testing methods, were there any end- user / UX testing challenges?
Ryan Groom: “There are no best practices for testing holographic UI/UX! It’s brand new, the amount of time this has been on the market, no one can claim they are the expert and have figured this out. We learn every day new and better ways to test the holographic portion of the experience, and that is very exciting for us.”
TEST: What security challenges have you faced with the platform?
Paul Archer: “Early on, we knew that to be accepted by Defence clients, security was going to be paramount. This is the main reason we chose to create our own engine to run RemoteSpark on. Other platforms tend to use a game engine, such as Unity, to achieve the required platform.
“With a security-first mind set, we can control all aspects of our code and how it interacts with the HoloLens. Adopting Azure was the second component in our security strategy. Azure allows us to encrypt data, at rest and in transit, and provides a host of security features that our platform takes advantage of.”
TEST: Were there any challenges you encountered with building the applications for HoloLens, and if so how did you overcome them?
Ryan Groom: “The biggest challenge was the power of the CPU in HoloLens 1. It was equipped to render holograms and gather data efficiently from an array of sensors, but when it came to it, it lacked the lack raw processing power, so we had to design everything in our solution to be very efficient.”
TEST: What challenges were initially encountered in real-world use cases?
Ryan Groom: “The biggest challenge was that people did not even know what a HoloLens was! So, before they could get an appreciation of our solution, we had to do an introduction to Mixed Reality and the HoloLens. We had to get them to realise it’s a Windows 10 computer with a holographic display, that it was not a new cordless VR headset.”
TEST: What were the software/platform challenges with developing for HoloLens?
Ryan Groom: “The challenge was huge. The majority of people use Unity to develop HoloLens applications as it is very well equipped to create beautiful immersive interactive 3D environments – and the majority of samples from Microsoft were all using Unity.
“However, for our requirement for video calls, while having interactive holograms overlaid, we needed a solution that was closer to the metal, so we created a solution written in C++ and C# to provide us with only the functions we needed.
“This can slow down development at times, as we have to create all the functions ourselves, but allows us to understand the feature in its entirety and ensure it is optimised for our use case.”
TEST: Have you broken any new ground?
Paul Archer: “Creating our own engine from scratch to provide the framework for the functionality of RemoteSpark is ground breaking. We are providing solutions for questions no one has had to ask before!”
TEST: What’s your project/development culture like?
Paul Archer: “We are definitely a DevOps culture. We were lucky to start with a like- minded, mature dev team. DevOps was second nature, it didn’t really need to be introduced. The dev team is relatively small and we really care about our customer’s interaction with our software. Everything we do is to enhance the experience for the end user.
“All QA is handled by our lead QA manager and his team. They are responsible for working hand-in-hand with dev to ensure a smooth process for both Dev and QA.”
TEST: How do you assess and incorporate client/user feedback into your products?
Paul Archer: “Feedback is critical to our growth. Our customer management team is constantly reaching out to our customers to see how they are using RemoteSpark. All of that feedback comes back to the dev team and is evaluated. Not every feature is incorporated, but if there is a common trend of customers asking for a certain enhancement, we try to accommodate it.”
TEST: What’s your cloud usage/ environment?
Paul Archer: “We use Microsoft Azure as our cloud framework. The benefits are endless – fast, cheap and scalable compute and storage. The ability to quickly spin-up a new environment is key as we start testing new features.
“We are also easily able to automate the deployment of our app to Azure from Microsoft Visual Studio, reducing errors on deployment and downtime due to misconfiguration.
“As a first-class citizen of Azure, RemoteSpark will evolve as new features become available. We are also positioning RemoteSpark to utilise Azure Stack and Azure Stack HCI for our clients that require an on-prem solution as well.”
TEST: Were there any challenges you encountered at any stage in terms of architecture?
Ryan Groom: “The biggest non-holographic challenges are cloud vs on-prem. There are many excellent cloud services to help build and scale your application, but do not have an on-prem equivalent.
“When evaluating cloud services, we have to determine, ‘can we run on-prem or can a service be constructed as a software layer that can talk to various services, so we can vary our deployments?’
“This increases the testing matrix as the services that power the cloud solution vs the on-prem solution are different, so both have to be tested. We even have to test solutions that have no public Internet connectivity.”
TEST: What testing tools/methodologies and repositories do you use?
Paul Archer: “We use MS Test as our Unit Testing tool. Tests are created as classes are built. We use Microsoft DevOps as our repository. We also incorporate a number of GitHub libraries as well, and have created our own CI/CD pipeline tailored specifically for our shop based on Azure DevOps.”
Ryan Groom: “MS Test allows us to write tests that run locally, but will also run in a CI/CD pipeline in Azure DevOps. We may be evaluating xUnit and nUnit in the near future. We are building processes to do a secure source code review of open source libraries we use and bring in the projects to our build system, so we do not build from the source, but from our own repos.”
TEST: What do you see as the future for Kognitiv Spark and AR/MR applications in general?
Ryan Groom: “The future for Kognitiv Spark is in consistently improving the methods to help remote workers, using both mixed reality and AI. As the industry figures out the best UI/UX/Data Content for the user, the experiences will become more natural, and this unlocks the true power of mixed reality. As the headsets become less intrusive to wear, the fidelity of the visualisation increases, and the proper amount of data, and more importantly the placement of the data, is refined.
“People will welcome and embrace their physical worlds being annotated with helpful digital content more than ever before – becoming seamlessly connected – something beyond what 2D devices could ever hope to achieve.”