Welcome to Willmo3's Website!
π About Me
Hello! I'm Will Morris, a CS student at James Madison University.
I enjoy the finer things in life, like Minecraft, Freeciv, and Legos.
My high level research objective is to design programming tools that abstract the complexity of computer systems and enable developers to write high-performance code. To this end, I seek to design new parallel programming languages, compiler analyses, and verification techniques that detect race conditions or even automatically parallelize code!
Previously, I was a member of Carnegie Mellon University's REUSE program, where I designed new tools to enable software robustness analysis in the TLA+ specification language. Now I'm applying for Ph.D. programs in computer science.
Research
Dr. Chris Johnson's Twoville is an education programming language for generating and visualizing SVG shapes!
I examine avenues for performance improvements in Twoville, like upgrading its interpreter and web runtime.
At CMU's SoDA lab, I formalized and prototyped software robustness analysis in the TLA+ modeling language.
As a research capstone, I evaluated the effectiveness of LLNL's RAJA library, designed for large (~1mil LOC+) codebases, at porting small (~1k LOC) end-user programs across consumer-grade architectures.
Projects
I run the Williserver Minecraft server, along with a suite of accompanying plugins and scripts.
As an aside, this website is named for the eponymous Minecraft server!
Over Covid, I started playing a Civ2 clone called Freeciv with my friends.
Now I've got a whole collection of Freeciv utilities called "Beeciv"!
HPCarver is a C++ implementation of seam carving, a dynamic programming algorithm for image resizing.
This artifact compares LLNL's RAJA performance portability with other parallelization libraries, such as CUDA and OpenMP.
FaultCrosser is a tool for automatically calculating the robustness of fault-centered TLA+ libraries.
It reports the maximal combinations of faults a TLA+ model is robust against!
RobustNet models synchronous, partially synchronous, and asynchronous network channels in TLA+.
It includes faults for synchronous networks that are compatible with FaultCrosser!
Over winter break, I built a Huffman compressor in Rust. It was a bit of a journey!
Tiers is a Minecraft plugin for dynamically expanding world borders in 'tiers'.
I built a tool to select a personal Lego set based on your name.
When I was first learning C++, I got tired of "making" tiny makefiles all the time.
So I built FirstMake, a tool that does it for you!