Exploring Hidden Worlds

Project Type: Interactive Visualization (JS, D3.js, Three.js, CSS, HTML)

View the project here

Background

The project first began as an idea in 2021 with a simple question: How can code be easier to understand? Frustrated by the learning process at several internships and seeing friends struggle with the linear process of traditional programming practice I wanted to imagine something new. Fast-forward three years and in my final two semesters at Northeastern University I finally felt I had to skills to accomplish my goal. Beginning as a seft-directed Honors in the Discipline project and supported by PEAK Summit Award from the Office of Undergraduate Research and Fellowship, and under the advising of Todd Linkner, I had the freedom and funding to iterate and turn my idea into a reality.

The Vision

Inspired by the quote "Any sufficiently advanced technolgoy is indistinguishable from magic." by Arthur C. Clarke was my guiding mantra when I started working. I wanted to create something new and push against traditional methods of coding to invoke curiosity and platfulness. After resarching and conducting a literature review on current methods of visualizing codeThe original goal was to have files act as "solar systems" and the closer you zoomed into a

Iterations

Version 1

Version 1 of the Exploring Hidden Worlds visualization.

Version 2

Version 1 of the Exploring Hidden Worlds visualization
Pan & Zoom Interactions
A GIF showcasing the different ways to pan and move about the 3D visualization
Zoom to Specific Nodes
Example showing how the visualization can be used to zoom into a specific node and portion of code
As Pedagogy

The visualization and encoding system can also be used to help teach people about object-oriented and other heirarchical design systems within code. By seeing how aspects of scope are nested within one another it can be easier to understand intangible code.

Opening slide for an interactive onboarding and teaching process to visually demonstrate the heirarchy of code.
Slide showing what a single file node looks like.
Slide connecting the file node to several nodes representing functions in the file.
Additionaly slide explaining children link.s
Slide explaining basic aspects of object-oriented programming and how it looks in the visualization.
Final slide summarizing how the visualization works.