What was the scope of their involvement?
They provided C++ image programming for automation applications. We have one machine with five lasers. We have 300,000-400,000 point per second lasers and two longer-range 20,000 point-per-second lasers. In order to handle this, we use stockyard machine control with a stacker reclaimer.
It’s generally recognized as the largest semi-autonomous machine in the world because it’s on rails, but totally unmanned. It’s about 10 stories high and sits on a rail track 11 meters wide with a couple of vehicle roadways to pass under it. It’s an extremely large machine with a 60-meter boom and 10-meter diameter buckle wheel. We control that and position a chain within about 100 millimeters.
The software they helped create is an essential part of the application. It actually processes the 3D point clouds from multiple laser systems and updates a data set for stockyard which is 1.2 kilometers wide. We’re currently doing another system that is 20 meters wide. Essentially, we have our new memory data set that has a 40-millimeter horizontal resolution at the stockyard.
We’re currently sitting at around a 500-megabyte internal data set and it will roll up to 1 gig to achieve the functional requirements of the application. We do very high-speed processing with more processing power on our machine than anywhere in the world. We essentially put up a server and they were choosy on processing systems and video co-processes as well.
It’s been a learning exercise for ourselves and Scopic Software. We’re using Nvidia GPU processing that didn’t exist four years ago nor did some of the libraries we’re using. We’ve had to discover the appropriate external libraries to use to provide the performance system. The stockyard, which is the main dataset, is accessed by 9 or 10 processes. It’s quite a unique C++ application in that it’s got a large number of processes accessing a very large data set in real time.
We do our processing and surface reconstruction at the line-hour prime rate of 10Hz. When the application is running, it will use 100-130 concurrent threads. There are very few developers in the world who can do multi-process C++ including Nvidia GPU. Most of our standard routines have SSE intel vector instruction optimizations and we also have equivalent processes that we bring in a GPU environment for those as well.
What is the team composition?
We currently work with two developers. In the early stages, the maximum number was four developers and a project manager.
How did you come to work with Scopic Software?
We advertised for developers and within 24 hours, we had heard from eight very high-level C++ developers from various countries around the world. We worked with one of them for proof of concept, but that didn’t meet our performance requirements. Even though they were a very large organization, it was the first application that was truly real-time. We went looking for a low-cost option in India. We came across Scopic Software in a web search and we spoke with the owner. We eventually started using developers and most of the developers have been from Northern Europe throughout the whole time.
How much have you invested with them?
We’ve spent $250,000-$300,000.
What is the status of this engagement?
We started working together in June 2014 and the work is ongoing.