Justin Williamson, wearing a navy blue mask and green jacket, looks at the camera.
Justin Williamson ’22 used Lawrence’s Experiential Learning Funds to complete a computer science simulation project he had been working on for years. (Photo by Danny Damiani)

2 Minutes With … is a series of short features to introduce us to the passions and interests of Lawrence students on and off campus. 

When he was in high school in his hometown of Phoenix, Arizona, Justin Williamson ‘22 spent lunch periods asking his physics teacher all kinds of questions about how the world works. Now, his curiosities about physics and space have culminated in his first big 3-D graphics project.

With the help of Lawrence’s Experiential Learning Funds (ELF), the computer science and French double major finished a long-running attempt to simulate two galaxies colliding. Supported by alumni and other donors, the fund helps students access summer internships, self-directed research and projects, and more opportunities that enhance their learning experiences.

The simulation Williamson completed over winter break is just one iteration of a project he has been tinkering with for about five years. His earlier version of the simulation depicted between 100 and 200 stars. That’s grown to about 50,000 stars in a collision that takes place over 750 million years. More stars mean more computing power and, well, more skill. The difference lies in programming on the CPU (central processing unit) versus the GPU (graphics processing unit).

“Most programs run on the CPU, which is good at running serial calculations, but not 50,000 of the same calculation,” Williamson said. “But the GPU is good at that kind of calculation. It’s very different because you have to think about everything happening at the same time, rather than sequenced.”

Help from the ELF

That’s where the stipend comes in. Williamson had been working with the Career Center to hunt down internships when they sent an email detailing the ELF. This was Williamson’s first time programming on the GPU, so some extra research, which comes with added expenses, was necessary to achieve his goal.

“[The fund] allowed me to get books very easily,” Williamson said. “Also, a little bit of hardware for my computer to make it run better. I don’t think I would’ve finished it over the break if I hadn’t had the stipend.”

Programming a simulation like this can be a gamble. Williamson put faith in his calculations. He recalled the final moment of truth: letting the simulation run overnight.

“I didn’t know if it was going to work the night before or not,” he said. “That day I encountered two or three subtle bugs. Once the calculation started, all the stars would instantly disappear. So, it all could’ve been for naught. But I was amazed at what was happening when I actually could see the simulation.”

A needed assist

It wasn’t just the financial boost that helped Williamson achieve his goal. His passion for programming was met with support from his past.

“I’m so thankful to my high school physics teacher,” Williamson said. “I spent two or three hours on the phone with him trying to fix my math.”

The successful simulation is a testament to Williamson’s growing skills in computer programming, but it’s anything but the end. He hopes to eventually simulate galaxies of one million stars. But those are calculations for another day.

Watch the galaxies colliding here.

Justin Williamson

Class Year: 2022

Major: Computer Science and French

Hometown: Phoenix