Deconstructing Hubble: How a Flawed 1929 Paper Changed Cosmology

Deconstructing Hubble: How a Flawed 1929 Paper Changed Cosmology

As a part of a PHYSDepot undergraduate literature group, I led a session on Hubble’s 1929 recession velocity paper. In this, I lead a “scavenger hunt” to find both the surface-level and deeper flaws in the paper, and how Hubble still ended up with a right conclusion despite these issues. The entire scavenger hunt was summarized after the fact into a PDF document provided in this post.

If you have ever spent time looking at the history of science, you quickly realize that progress is rarely a straight, clean line. Nowhere is that more apparent than in Edwin Hubble’s famous 1929 paper, “A Relation Between Distance and Radial Velocity Among Extra-Galactic Nebulae”.

It is widely celebrated as the observational cornerstone of our modern expanding universe. But when you look closely at the actual document, it is a fascinating case study in how brilliant scientific breakthroughs can emerge from selective data, faulty calibrations, and missed theoretical underpinnings.

To help unpack this for an undergraduate literature group on PHYSDepot, we put together a deep-dive scavenger hunt guide. Here is a look at what makes Hubble’s 1929 paper such a wild ride, from its surface-level quirks to its deeper flaws.

Demolishing Tacit Knowledge and My Commitment to PHYSDepot

Demolishing Tacit Knowledge and My Commitment to PHYSDepot

A short blog post dicussing tacit knowledge, and my commitment to reducing tacit knowledge barriers in physics/astronomy curricula through my work with PHYSDepot.

Ask any undergraduate physics or astronomy student what took them the most time to master, and they might say “quantum mechanics” or “general relativity.”

What they might not tell you, however, are the endless hours spent wrestling with a Linux terminal, trying to decipher why their LaTeX document won’t compile, figuring out how to format a poster for a conference without looking like an amateur, or learning why their default plot colors are completely inaccessible to colorblind peers.

These are the essential skills of doing modern science, yet they are almost never taught in formal coursework or lectures. They represent tacit knowledge: the practical, hands-on craft of research that students are expected to acquire on their own through trial, error, and sheer grit, and is rarely taught through formal coursework or guided mentorship.

Building Publication-Ready Figures: A Walkthrough of the Professional Plotting Notebook

Building Publication-Ready Figures: A Walkthrough of the Professional Plotting Notebook

A blog post regarding an open-source notebook designed to combat the tacit knowledge barrier of making professional, CVD-friendly posts. Hosted on GitHub and designed for PHYSDepot.

If you spend hours running simulations or reducing telescope data, your final figures deserve better than default settings. Standard plotting libraries are great for quick exploratory checks, but turning those drafts into publication-ready graphics requires deliberate attention to typography, color theory, and file formats.

Today, I’m releasing a comprehensive, interactive Jupyter Notebook designed to take your Python visualizations from functional to professional, specifically designed to teach early-stage researchers the tacit knowledge of publication-level plotting.

Here is a quick tour of what the notebook covers and how it can upgrade your workflow.

Simulating Phase Transitions: Building a 2D Ising Model in TypeScript

Simulating Phase Transitions: Building a 2D Ising Model in TypeScript

The blog post regarding a web-deployed 2D Ising model simulation, written in TypeScript, HTML 5 Canvas, and Chart.js.

In statistical physics, few models are as elegant or insightful as the Ising Model. Originally proposed by Wilhelm Lenz and solved in 1D by his student Ernst Ising in 1925, it serves as a simple mathematical abstraction for ferromagnetism.

To better visualize critical phenomena and phase transitions, I built a real-time 2D Ising Model simulation using TypeScript, HTML5 Canvas, and Chart.js.

👉 Try the Live Interactive Simulation Here

From Planets to Cosmology: How I Built a 10-Week Summer Astronomy Reading Group

From Planets to Cosmology: How I Built a 10-Week Summer Astronomy Reading Group

A behind-the-scenes look at designing and running a 10-week summer astrophysics reading group. Covers curriculum planning across stellar evolution, explanets, and relativity, blending breaking science news with practical physics calculations and custom HTML slide designs.

This summer, I volunteered to take on a project I’ve been wanting to for a long time: hosting a multi-week summer reading group dedicated to introductory and modern astrophysics, aimed at those interested in astronomy with minimal prerequisites.

What started as a simple idea (getting together with other astronomy enthusiasts to talk about cool physics) quickly evolved into an incredibly rewarding curriculum-building journey. Here is a look behind the scenes at how I designed the reading group, structured the learning, and how I built custom slide decks to host weekly engaging discussions.

Advanced Physics Laboratory Reports

Advanced Physics Laboratory Reports

Physics 5700 Advanced Physics Laboratory PRL-style reports from three long-term experiments throughout a semester. This includes: 2-Slit Interference in the Quantum Limit, Boltzmann Constant Measurement via Johnson Noise, and Visible Spectroscopy experiments.

Physics 5700 (Advanced Physics Laboratory) serves as the capstone experimental experience for senior Physics and Engineering students at Ohio State. Unlike earlier labs that focus on verifying known laws with “cookie-cutter” setups, 5700 pushes us into the realm of professional scientific inquiry. The course is built around multi-week “Long Experiments” that require not just technical execution, but rigorous data analysis, uncertainty propagation, and professional communication.

The ultimate goal is to move beyond “getting the right answer” and instead focus on quantifying exactly how well we know that answer. This meant mastering the Physical Review Letters (PRL) style of reporting—learning to be concise, active in voice, and visually precise with data representation. It’s a course that demands high-level teamwork in the lab and total independence in the analytical “write-up” phase.

A Positive Disaster

A Positive Disaster

As a part of a two-semester undergraduate Order of Magnitude (OoM) astronomy course, the second semester culminated in a group project where we created our own OoM problems. Our group created a problem titled “A Positive Disaster”, a problem about ripping electrons off the moon!

Imagine an alien race has come to our solar system with an “electron capture” magnet. They position the magnet at the moon and start ripping away electrons from the moon, making it positively charged, and they conveniently don’t repel each other or attract other positive charges when doing so. As the moon continues to get more positively charged, it will eventually “explode” (become unbound).

(a) Calculate the number of electrons you have to remove before the moon explodes/becomes unbound.
(b) Is this a sensible amount of electrons?

In this post I talk about the problem itself and the writing process.

A Comparison of tf.data.Dataset with Manual Image Loading

A Comparison of tf.data.Dataset with Manual Image Loading

Loading data for AI models can be RAM and time-intensive. For a larger project (HackAI 2025) with a big dataset, I ran an optimization test on a manual loader and a Tensorflow pipeline to see the variations in time and RAM. As expected, Tensorflow’s model is much more efficient.

While working on our HackAI 2025 project, we found that our original way of loading the image data for our multi-headed regression was incredibly slow, and was crashing some of our computers due to RAM usage. Eventually, we converted our pipeline over to one that utilizes the more-optimized tf.data.Dataset pipeline. For our own entertainment, we made plots comparing the old method with the new method.

Pagination