Previous Projects

A Collage of pinball game boards.
Pinball with Processing
  • Java
  • Processing
  • Simulated Physics

This Processing sketch was done by me (Dan Runningen) in conjunction with Sarah Boelter as the first major project in CSCI 5611 - Animation and Planning in Games. This class is offered by the University of Minnesota as an elective graduate-level course designed to teach students the fundamentals of simulated realistic motion. This project in particular was designed to introduce basic collision detection and energy transfer.

Image of a scorpion model in a map simulation.
Inverted Kinematics and Pathing with Processing
  • Java
  • Processing
  • Motion Planning

This project was a combination of two smaller simulations as the third major assignment in CSCI 5611 - Animation and Planning in Games.

Images of both the Cloth and Water simulations.
Cloth and Water with Processing
  • Java
  • Processing
  • Simulated Physics

This project was a combination of two smaller simulations as the second major assignment in CSCI 5611 - Animation and Planning in Games. (You can check out the first one here.) This time I (Dan Runningen) worked with Kurtis Kill to create simulations of cloth and water in Processing sketches.

Drone and Robot models displayed in a diagonal split screen
Simulated Drone Dispatch with C++ Web Sockets
  • C++
  • Javascript
  • Object-Oriented Programming
CSCI 3081W - Program Design and Development is a required course at the University of Minnesota for undergraduate computer science students. Over the length of the semester, students worked independently adding necessary classes and structures to the C++ backend of a drone simulation resulting in a complete baseline project. The last assignment of the semester involved working in groups to expand the existing functionality of the base project.
Screenshot of the final web tool with the corner peeled up to reveal the Scryfall logo.
Web-Based Query Tool with REST Requests
  • Vue 3
  • Bootstrap 5
  • Sass
  • GitHub Pages

This is simple web tool utilizing Scryfall's free API to query cards of value for the popular card game, Magic: The Gathering (often abbreviated with MTG). The finished tool can be found here. Like my personal website, this query tool is a static Vue website hosted off of GitHub Pages.

A repeating collage of TETRIS boards created from the random species.
Evolutionary Neural Networks Playing TETRIS
  • Python
  • Neural Network
  • Research
  • Experiment
CSCI 5521 - Artificial Intelligence II is one of the advanced elective courses offered at the University of Minnesota for computer science students. A significant portion of the grade comes from a term research project meant to allow us to dive deeper into course topics. While the course delved into neural networks and how perceptrons function individually and together, my partner and I were interested in exploring how evolutionary neural networks might speed up the training process in cases where there might not be a single correct answer.
Macro image of coral with the site logo initials watermark.
Personal Website with Nuxt JS
  • Nuxt JS
  • Bootstrap 5
  • Sass
  • GitHub Pages

I've wanted to build a website for many years to host a variety of things, including my resume and some project examples. The domain name was already purchased and attached it to a simple Google Sites layout but I simply wasn't happy with the result. Instead of paying for a big-name web development and hosting services, I took the opportunity to try out a flavor of the Vue 2 front-end framework.

The classic model of a teapot rendered with the pop-art shader and a thick outline.
Pop-Art Rendering
  • C++
  • Lighting
  • Shading
This exercise was to give students practice creating their own shaders for the CSCI 4611 - Programming Graphics and Games class offered as an elective for computer science students at the University of Minnesota. This particular shader comes in two parts, the smooth cell-shading in the fragment shader and the cartoon outline from the vertex shader.
PLANiT logo and backsplash designed by Conrad (Cal) Carlson
Native Android Project Management App with Java
  • Android
  • Java
  • Research
CSCI 5115 - UI Design, Implementation & Evaluation is a course offered at the University of Minnesota to both undergraduate and graduate level students. Over the length of the semester, students worked in groups on a single project that involved selecting a problem, researching user needs and current solutions, designing and developing a minimum-viable-product, and collecting user feedback and to plan next steps.
A split image showing both a flat map and spherical globe showing locations on the surface where earthquakes have occurred.
Earthquake Occurrence Visualization
  • C++
  • Data Simulation
  • Mesh Wrapping
This interactive graphic shows the time, location, and magnitude of earthquakes around the globe. Each sphere represents one quake and its magnitude is described by the initial size (bigger sphere means larger magnitude) and its color (red < yellow < white). The sphere will shrink over time and disappear as more quakes appear on the map. This is one of the many projects from the CSCI 4611 - Programming Graphics and Games class offered as an elective for computer science students at the University of Minnesota.
A still frame from the application showing a black and white video where a woman sits in the center holding an umbrella while a hand enters from the right side of the frame in the foreground. Colorful letters descend from the top of the frame and stop when obstructed by a dark object.
Text Rain Sketch with Processing
  • Java
  • Processing
  • Simulated Physics

This Processing sketch is derived from Camille Utterback's Text Rain project where a video feed allows users to interact with letters falling from the top of the screen like rain. It is the first project of the CSCI 4611 - Programming Graphics and Games class offered as an elective for computer science students at the University of Minnesota. It's primary purpose was to introduce students to rendering loops and how to update and maintain graphics between frames, but it gave us the opportunity to test out custom controls as well.

Fluorescent green and blue text on a black background. The green text reads, "Hello! How are you?", while the blue replies, "Good! You?"
Blather Chatroom
  • C
  • Server/Client
  • FIFO Queue
This was another project for the CSCI 4061 - Introduction to Operating Systems class required for computer science students at the University of Minnesota. It involved coordinating two different programs, a server and a client. Commands and messages are sent and received through FIFO queues. As messages are set, the server reads them and distributes them to the various clients in the order they were received. Each instance of the server or client running has it's own inbox to read from.
A vector image of a prompt carrot wearing a cartoon helmet.
Commando Terminal
  • C
  • Pipes
  • Memory Management
CSCI 4061 - Introduction to Operating Systems is a required class for computer science students at the University of Minnesota. The first project of the course is where students make a wrapper for a bash terminal that, instead of processing the commands in-line, processes them in a separate thread and captures output in a pipe to be read after the fact. The user is notified when a task has been completed the next time the user hits the enter key for any reason.