Close

Dan Orban

Computer Scientist, PhD

Download CV

About Me

Research

My research combines interaction techniques from the scientific visualization and visual analytics disciplines to study high-dimensional parameter spaces. I ask the question:


"How can we add intuition to complex high-dimensional systems using interactive visualization?"


With the emergence of Virtual Reality (VR) and Augmented Reality (AR), perhaps soon it will be common practice for scientists and engineers to immerse themselves in their data, directly manipulating variables of interest. Imagine painting stress on a medical device, twisting a pathline to increase vorticity in a fluid, and stretching a solid object to change displacement. These organic, user-defined actions allow subject matter experts to ask questions of ill-defined systems in the same way we naturally experience reality.


To solve these types of problems, I explore ensemble visualization, parameter space analysis, semantic interaction, uncertainty, immersive environments, remote visualization, and high performance computing.

Please review my projects for more information on how these research areas fit together.

Research Interests

  • Scientific Visualization
  • Visual Parameter Space Analysis
  • Semantic Interaction
  • High-Dimensional Analysis
  • Virtual Reality
  • Dimensional Reduction
  • Large Data Visualization
  • Multiple Context Rendering
  • Remote Visualization
  • Uncertainty Visualization
  • Physics Based Animation
  • Embedded Systems and Haptics

Professional and Teaching Experience

I currently have 20+ years​ of ​professional​ and​ teaching​ experience. This diverse background​ has fostered strong verbal, listening, and writing skills, complemented with a desire to teach others.


My professional life began at Dell Technologies where I worked as a website programmer for software and peripherals and search. After four years, I decided to pursue research on distributed systems with a job at Accenture Technology Labs. I then worked as a software contractor, a website designer, and finally as a graphics programmer before becoming a PhD student.


Throughout my professional career, occasionally between jobs, I have also pursued teaching. I started as a mathematics tutor as an undergraduate at Oklahoma State University. Later, I was trained by an alternative certification program to become a high school teacher in the state of Texas. It was in Minnesota, however, where I taught my first high school technology class. Naturally, as a PhD student I have had the opportunity to be a teaching assistant for several key graduate and undergraduate level classes.


For more information, please see my professional and teaching experience.

Projects

Cancer Cell Migration

This project worked towards understanding which properties of a cell and its environment are involved in cell movement. Cancer cell migration is a problem that is both high dimensional (i.e. has many variables like stiffness, motors, clutches, traction forces, actin flow patterns, etc...) and has complex spatial temporal relationships (i.e. cell body, actin, and arms).

Using the c++ version of the Cell Migration Simulator, developed in collaboration with the interactive visualization lab and David Odde's biomedical engineering lab, we investigated how to explore parameter relationships. The parameter space is large and nonlinear with complex spatial features. See my Doctoral Dissertation for results.

Shock Physics

In collaboration with the Data Science at Scale team at Los Alamos National Lab, I worked for two summers developing interactive visualization techniques for understanding the high-dimensional space in shock physics applications.

Shock physics is a research area in material science that uses high powered gas guns or lasers to shock a material of interest. The resulting elastic and fluid reactions provide detailed information about the strength of materials, giving insight into physics and the possibility of creating new material phases (e.g. stronger materials).

View Project

Drag and Track (a.k.a Cinema: Quest)

Drag and Track is a technique for contextualizing instances of an ensemble (i.e. understanding a simulation's relationship to set of simulations). This technique uses direct manipulation, prediction, and search capabilities, allowing users to intuitively explore relationships between inputs and outputs by simply manipulating curves and points. For example, in the shock physics application, there is a feature called the elastic plateau. A user can simply drag the elastic plateau and see how the other input and output values change. It also provides uncertainty visualization to get a better view of whether the prediction should be trusted in the context of the ensemble.

Cinema:Bandit

Cinema: Bandit explores shock physics experimental data using parallel coordinate plots and multiple linked views. This allows material scientists to view parameter relationship along side x-ray diffraction images, superimposed velocimetry curves, and integration curves. By modifying the Cinema Component infrastructure, we were able to integrate Cinema: Bandit with the Stanford Linear Accelerator Center (SLAC) using the LCLS psana system. As experiments were conducted, the data was automatically processed and results were streamed into Cinema:Bandit.

Cardiac Lead Design

In order to understand the complex input and output space for cardiac lead design, we implemented an instance comparison tool called Bento Box. This tool allows users to interactively explore and compare spatially relevant features. Bento Box is a virtual reality visualization and 3D user interface technique for comparative analysis of data ensembles, such as this set of 10 time-varying simulations of blood flow around a cardiac lead in the right atrium of the heart. Each column shows a simulation with different parameters, here varying the length and stiffness of the lead. Each row shows a different view of the data. The top row is a zoomed-out overview. Users add additional rows of complementary, zoomed-in views during analysis for memory intensive fluid-structure interaction simulations in virtual reality.


Particle Flow

Visualizing complex fluid flow in virtual reality (VR) is a necessary part of state-of-the-art climate study, physical system design, and biomechanical engineering. However, the most effective way to support real-time advection and rendering of hundreds of thousands of multi-dimensional particles on multiple high-framerate stereo displays remains an open challenge. Particle Flow is particle advection and rendering system for addressing this challenge in the context of current graphics hardware.

View Project

We drive a 4-wall Cave VR environment from a single computer with multiple graphics cards, and we explore the potential of hardware configurations, which can include both traditional graphics processing units (GPUs) and general-purpose GPUs, for scientific visualization.

The approach uses a GPU-based implementation of 4th order Runga-Kutta integration to update the space-time state of each particle as it moves through vector fields of interest to scientists, typically pre-computed with offline high-resolution simulations. The particles are then displayed using GPU shader programs that support interactive head-tracked stereoscopic rendering in our 4-wall Cave driven by 8 projectors attached to a single computer with 4 graphics cards. We report upon the feasibility of this approach for use in exploring a large-scale computational simulation of a hurricane with visualizations that include hundreds of thousands of animated particles.

Sandbox Graphics Engine

In order to interact with visualize large simulation data sets with state of the art in graphics technology I created the Sandbox Graphics Engine. It focuses on high performance graphics rendering across multiple shared contexts and devices. The Sandbox is an entity component framework written in C++ using Vulkan and OpenGL.

The ultimate goal of this project is to enable rendering on multiple immersive display types (Desktop / Web / Cave / Head mounted display) while efficiently minimizing data transfer and flexible interaction.

View Project

Supercomputer Interaction

One important rule in visualizing large scientific data sets is "Do not move the data." The data is often too large to efficiently move for real-time interactive graphics. At the same time most remote data access is handled over the web. This project integrates the high-performance of c++ back end (e.g. off-screen rendering using Vulkan) where the data is stored with a javascript front end. The application uses web sockets to communicate over the network to the super computer also enabling simulation steering. The example uses P3.js as a simple graphics library for interaction.

View Project

Cloth Simulation

The purpose of my cloth simulation was to compare the features of multiple simulation integration schemes. In this solution I implemented and investigated explicit Euler, simi-implicit Euler, explicit Runga-Kutta 4th Order (RK4), and implicit backwards Euler. implicit backwards Euler was definitely the most stable. Surprisingly, simi-implicit Euler, in terms of stability, performed almost as well as RK4.

As a feature, I also explored interaction techniques in the HTC Vive using MinVR, an open source C++ VR library that I helped develop. Using a virtual sphere as a cursor, it was easy to manipulate the cloth through sphere collisions.

View Project

Finite Element Simulation

For a physics based animation class, I imlemented a CPU Finite Element Method (FEM) simulator in C++. It explores using explicit and implicit integration methods. A GPU version has been started.

View Project

Ray Tracer

For a graduate level graphics class, I implemented a ray tracer that handles lighting, reflection, refraction, and depth of field. I am very proud of this picture of a deer overlooking Lake Tahoe.

View Project

Haptics

For exploring user interaction, I have used the Open Haptics library to interact with a Phantom device. This allows users to feel forces. For example, users can pull the edge of a cell arm to manipulate a simulation.

To get experience creating our own haptics device, a friend, David Swanson, and I created a virtual button (pictured on the left). Using the HTC Vive, and our active haptics device we were able to virutally touch and push buttons. Moving a motorized plate while our hand moved (location based), provided the feeling of force feedback.

Professional Experience

Minneapolis, MN

Technology Consultant

  • Freelance work with industry professionals. Technologies include the latest in Python, Javascript, REST APIs, Angular, React, Django, Java, Docker, REST APIs, Node.js, Public Key Cryptography (JWT / TLS), MySQL, SQL Server, SSH, Cloud, Linux, Bash, and Git.

CreateMPLS, Minneapolis, MN

Research and Development / Curriculum Design

  • Researched STEM curriculum for K-12 students and developed to be used in public and private schools.
  • Integrated device software for the Arduino and Raspberry PI for using brushless motors and sensors.
  • Developed and implemented curriculum for building, programming, and flying drones for high school students.
  • Trained CreateMPLs instructors on curriculum.
  • Mentored college students on how to build a drone simulator with physics and graphics.

Los Alamos National Laboratory, Los Alamos, NM

Data Science at Scale - Graduate Intern

  • Implemented an ensemble visualization tool called Cinema:Bandit, allowing users to view and compare velocimetry data, x-ray diffraction images, and integration curves.
  • Contributed to several beamline experiments at the Stanford Linear Accelerator Center (SLAC) integrating visual analysis with psana.
  • Developed Cinema:Quest, a tool for exploring high-dimensional data by manipulating dimensionally reduced views.
  • Gave several research talks including one at IEEE Visualization Conference in 2018.

Computer Science Department, University of Minnesota, MN

Computer Graphics Programmer

  • Extended functionality for Virtual Interactive Table System (ISliceWIM) for medical device design.
  • Worked closely with medical device companies to implement FEA Analysis volume visualization in virtual reality.
  • Created flexible scene file format for transforming and aggregating mesh file formats for real-time manipulation.
  • Implemented VisCDF, an open source toolkit written in C++ for visualizing scientific data using the NetCDF format.

OATI Inc, Minneapolis, MN

Software Developer

  • Lead for WebREC, a renewable energy credit (REC) tracker for resource energy generation. Architected core attribution engine to allocate energy and RECs to various contracts and markets.
  • Used OO design to flexibly allow the user to create, customize, and debug rules in C# / .NET.
  • Extended core company functionality to build powerful data pivot functionality which takes objects and dynamically builds reports based on the user's chosen properties or dimensions using WPF.
  • Became technical expert of WebFinancial, a live financial trading analytics application. Implemented real-time quotes and live profit and loss updates for futures, swaps, physicals, and options.
  • Designed and implemented FIX / FIXML trade capture adapters to interface with live commodity exchanges including the Intercontinental Exchange (ICE), the Chicago Mercantile Exchange (CME), Trading Technologies (TT), and the Nodal Exchange. Used QuickFix as underlying framework for energy and financial trades.

BCforward, Austin, TX

Software Contractor

  • Extended Cloud Map/Reduce (CMR) project for Accenture to use the Appistry Cloud environment.
  • Redesigned CMR application for a variety of distributed platforms.
  • Designed CMR for no single point of failure and incremental processing of previous aggregations.
  • Created serialized storage model which allows for streaming aggregation of successive runs.

Accenture Technology Labs, San Jose, CA

Research Associate

  • Designed and implemented Cloud Map/Reduce (CMR) in Java using EC2, S3, SQS, and Simple DB..
  • Investigated network topology discovery and optimization techniques with TCP/IP socket programming.
  • Designed and implemented Cloud Map/Reduce (CMR) in Java using EC2, S3, SQS, and Simple DB.
  • Investigated network topology discovery and optimization techniques with TCP/IP socket programming.
  • Discovered network security risk involving bandwidth limitations in shared resource environments.
  • Designed Remote Network Labs in Java, AJAX, and the Google Web Toolkit (GWT), which allows users to test network configurations from a pool of distributed physical network devices.
  • Modified and extended Hadoop file system and Hadoop map reduce framework to create Gridbatch.
  • Gridbatch provides flexibility for data storage locality and enables tasks similar to map or reduce.
  • Published peer reviewed papers on distributed computing, cloud computing, and network virtualization.
  • Delivered interactive presentations on synthetic biology, networking, and distributed computing.

Dell Inc., Round Rock, TX

Programmer Analyst

  • Technical lead and senior developer for the Software and Peripherals online web application, a large scale, real-time, performance-sensitive, customer facing, production application written in C#, ASP.NET.
  • Promoted flexibility using object oriented techniques, efficient coding, and design patterns.
  • Wrote core pricing and business logic in C#. Compiled into libraries to be used across applications.
  • Designed and developed production Dell.com Search application. Determined FAST Data Search indexes to optimize for flexibility and performance.
  • Received S&P I/T Director’s Award in 2004 for efforts and teamwork. Used multithreading in C# and Microsoft SQL Server stored procedures to update search index.
  • Administered Microsoft SQL Server application databases, and optimized queries.
  • Automated application build using VSS, NAnt, and Cruise Control.
  • Trained Brazil global developers as project lead. Mentored replacement for global development lead.

Teaching Experience

University of Minnesota, MN

Lecturer

  • CSCI 4041 - Algorithms and Data Structures (Fall 2024)
  • CSCI 2081 - Introduction to Software Development (Fall 2024)
  • CSCI 2011 - Discrete Structures (Fall 2024)
  • CSCI 5906 - Visualization (Spring 2024)

CreateMPLS, Minneapolis, MN

High School Teacher

  • Drone Bootcamp - Brooklyn Center High School (Summer 2022)
  • Drone Bootcamp - Relentless Academy (Summer 2022)
  • Introduction to Robotics - Hope Academy (Spring 2022)
  • STEM Block - Heritage STEM Academy, Minneapolis Public Schools (Spring 2022)

University of Minnesota, MN

Lecturer

  • CSCI 3081 - Program Design & Development (Fall 2021)

University of Minnesota, MN

PhD Candidate Graduate Instructor

  • CSCI 2011 - Discrete Structures of Computer Science (Current: Spring 2021)
  • CSCI 3081 - Program Design & Development (Fall 2020)
  • CSCI 1113 - C/C++ Programming for Scientists and Engineers (Summer 2020)

University of Minnesota, MN

Teaching Assistant

  • CSCI 4611 - Programming Interactive Computer Graphics (Fall 2019, Spring 2018)
  • CSCI 3081 - Program Design & Development (Spring 2019, Fall 2018, Spring 2016)
  • CSCI 5619: Virtual Reality and 3D Interaction (Fall 2017)
  • CSCI 2011 - Discrete Structures of Computer Science (Fall 2017)
  • CSCI 5421 - Advanced Algorithms & Data Structures (Spring 2017)

Hope Academy, Minneapolis, MN

High School Technology Teacher

  • Taught 11th and 12th grade students typing, spreadsheets, programming, search engine optimization, and website design.
  • Lead and organized the HopeWORKS Summer Internship Program for Hope Academy students.

Texas Teacher Alternative Certification Program, Austin, TX

Alternative Teacher Certification Candidate

  • Eligible for probationary certificate to teach high school math and computer science in Texas.
  • Substitute teacher for Austin Independent School District.
  • Observed classrooms in Vandegrift High School and Westwood High School.
  • Attended Texas Teacher Alternative Certification training in classroom management, lesson design, differentiated learning, assessments, and effective teaching.

Mathematics Learning Resource Center, Oklahoma State University, Stillwater, OK

Mathematics Tutor

  • Tutored college students in basic math, algebra, geometry, trigonometry, precalculus, and calculus.
  • Volunteered to help students who elected to take a mathematics application class.

Education

University of Minnesota

Jan 2015 - Sep 2021

PhD Candidate in Computer Science

University of Minnesota

Jan 2015 - Sept 2019

Masters of Computer Science

Oklahoma State University

Aug 1998 - May 2002

Bachelors of Computer Science and Mathematics

Skills

Languages


Graphics / Virtual Reality


Web / Networking


Databases


Cloud


Platforms


Source Control / Build


Scientific Software


Commodity Exchanges


Publications