The lab is an integral part of our problem solving ability. With expertise in electrical, mechanical, and software engineering, the lab is able to execute research and development tasks and create prototypes to illustrate solutions for our clients' needs. The lab is led by our Engineering Lab Director Asif Rahman, who manages development projects and day-to-day operation of the lab. Here are some notable prototypes and solutions that have been developed in-house.
Managing screen real estate has become key issue for those trying to reach their audience through mobile devices. Whether it is through apps, web, or video content, creators have struggled with adapting all their content to fit smaller size formats. As mobile and tablet screens begin to replace desktop monitors and televisions, the size and number of devices that a person owns has drastically changed. Users can have multiple mobile devices that replace a single traditional desktop device. With so much segmented screen space available to us, it is an inefficiency that we cannot merge these screens together for a more cohesive experience. At TheIncLab, we thought of how future devices could solve this problem.
We wanted to create a way for devices to adapt their content based on other physically adjacent devices. They would scale and rotate videos, images, and applications to extend the user experience into multiple screens over the physical boundary. Current devices do not have a method of communicating physical proximity to each other, so we developed a custom case that had sensors on three sides. Each sensor can send and receive unique signals that the devices can use to determine their physical orientation in relation to each other. With this information, software on the device adapts the content on the screen to create a single stitched screen experience.
As device bezels shrink, the experience only becomes more compelling. This can be useful for users trying to extend their screen space when watching videos, or for app developers that can have a secondary set of functions when more screen real estate is introduced. The result is a more seamless physical integration of the devices that we carry with us.
Switchable glass refers to glass that can change its opacity dynamically. This glass can be used in situations where a user needs to vary the transparency of the glass, such as in dimmable windows, in conference rooms, or at museums. In recent years, this type of glass has slowly been introduced to commercial and residential spaces. When we were approached to create a controllable switchable glass sunroof in a car, we investigated how this technology works, and how to integrate it into the car systems.
Switchable glass primarily is created in one of three ways: polymer displaced liquid crystals (PDLC), suspended particle devices (SPD), and electrochromic (EC) devices. Each approach leads to different behaviors of the glass. For example, PDLC and SPD are opaque by default and are transparent when energized, while EC glass behaves in the opposite manner. Each approach also has a different appearance. PDLC appears milky white when opaque, while SPD is dark blue. Both are clear when transparent. EC glass is dark blue when opaque and has a yellow tint when transparent. Given the desired look of the sunroof, SPD was chosen as the best approach for the sunroof. To create SPD glass, two panes of glass are coated with conductive material. The panes are then sandwiched together with a membrane of liquid in between them. This liquid has many light-absorbing microscopic particles suspended in it. When there is no voltage difference between the conductive material, the particles float freely in the liquid, blocking any light transmission. When there is a voltage difference introduced, the particles align with the electric field, creating gaps that allow light to pass through.
We manufactured a pane of glass that matched the car’s contour that had suspended particle device technology embedded within it. The next step was to control the glass. We connected to the car’s CANBUS system, which is a low voltage communication system that the car uses to send messages between its embedded devices. Another connection was made to the car’s power systems to obtain a 120V AC power line. Finally, we built an electronic control system to use the input signal from the CANBUS to control the power input. The power was also stepped down and rectified to provide a DC voltage usable by the SPD glass. The result was a seamless experience for the passengers: a button on the center console that could toggle a switchable glass sunroof.
On May 17th 2017, hundreds of thousands of computers around the world stopped working. Factories shut down, train stations could not operate, and hospital computer systems were knocked out. The files on these computers were encrypted by a malware called WannaCry that demanded that users pay to see their data again. This attack infected 230,000 computers in over 150 countries. The prevalence of computer systems in almost every industry leads to a vulnerability of critical infrastructure to hackers. Financial, healthcare, industrial, governmental, commercial, and personal data are all susceptible to getting hijacked or stolen if not safeguarded properly. While successful largescale cybersecurity attacks get reported every few months, cyberattack attempts happen every second. Automated botnets and scripts are always probing around the web, searching for a vulnerability that they can exploit. To illustrate how widespread this is, we created a visualization of cyber-attacks.
Using data from a 2016 study on network traffic and cyber-attacks, we began to deconstruct the anatomy of an attack. Attacks had a source and destination IP address and port numbers, and other metadata such as time, duration, and protocols. The IP addresses were looked up using an ICANN WHOIS search to determine the source and destination locations. The ports were used to filter the data by likely application. We then created a system to store and deliver the large amount of information to an application for visualization. An application was built using Unity3D that renders the attacks on a globe based on the attack information. Users can view the attacks as they unfold in real-time or can scrub through the timeline to see attacks at a specific time. The attacks are color coded by well known port numbers.
This demonstration shows both the prevalence of cyber-attacks occurring globally and the usefulness of data visualization tools to allows users to quickly understand trends and make meaningful interpretations about large sets of data.
Collaborating with the Tactical Advancements for the Next Generation (TANG) research team led to the development of a tool to aid pre-flight planning. This tool, known as the Pre-Flight Uniform Naval Combat Habitat (PUNCH), allowed users to visualize their flight route and adapt their route based on threat factors such as enemies, weather, and terrain. A key feature of this tool is the ability of the tool to determine the most efficient path based on the given input data.
Determining how to build such an algorithm required extensive research into the world of optimization. It was clear that the success of such a feature relied on the tool’s ability to access powerful optimization tools. Therefore, we built a bridge from PUNCH to MATLAB, a well-known numerical computing environment. The middleware system used COM ports to exchange information between the .NET scripting backend of Unity3D and MATLAB. With this in place, PUNCH could assess and serialize information about the current scenario and push this information to MATLAB. MATLAB would then analyze the information, compute the results, and provide the results to PUNCH for displaying.
With this bridge in place, we were able to experiment with the array of extended tools that were now available to us. For example, PUNCH was developed to assess the threat data of each individual point in the scenario and create a scalar field of treats in three dimensions. We fed this data into a constrained nonlinear multivariable function minimizer to find a path that minimized the accumulated risk. This had mixed results as this minimizer could only guarantee a local minimum and not a global one. We tried an A* search algorithm that used pathfinding between nodes to obtain an optimal path, and this had more success. In the end we combined an A* approach with a scalar field analysis approach that gave us the most satisfactory results.