Hi! I'm Jacky Song.

An aspiring physicist, designer, and developer with a passion for open source software.

Professional inquiries

Interested in working with me or hiring me? See my resume, portfolio and contact information on this info page →

My articles

This is an index of mostly scientific and technical writing on my website. You may also be interested in my collection of scientific & technical notes →.

In-Depth Classical Electromagnetism

This is a guide to classical electromagnetism beyond the basics, tackling boundary-value problems in electrostatics and magnetostatics, electric and magnetic fields within materials, and relativistic electrodynamics.

Read more...

How to export PDFs from Jupyter notebooks

It can be a huge hassle trying to export a jupyter notebook to a PDF - there are some ways that involve needing to download hundreds of megabytes (or even gigabytes!) of packages! So I thought I would share the way I use, a very simple way that doesn't involve needing to install anything and is incredibly fast and simple.

Read more...

Advanced Classical Mechanics

This is a guide to classical mechanics beyond Newtonian mechanics. Topics discussed include Lagrangian mechanics, Hamiltonian mechanics, Special Relativity, in-depth analysis of oscillations, and mechanical waves.

Read more...

A Gentle Guide to Partial Differential Equations

This is a short guide/mini-book on introducing various topics in partial differential equations, including analytical methods of finding solutions, boundary-value problems, and discussions of widely-known PDEs.

Read more...

Vector Calculus and Beyond

This guide covers the methods of calculus that go beyond multivariable calculus, including vector calculus, tensor calculus, the calculus of variations, and applications for each. In addition, derivations and more advanced treatments of topics in single- and multivariable calculus are also included.

Read more...

Fundamentals of Chemistry

This is a mini-book covering the topics of a typical general chemistry course, including atomic structure, the theory of reactions, chemical equations, stoichiometry, Lewis theory, and a brief introduction to quantum chemistry. Additional topics covered include valence bonding theory, VSEPR theory, the kinetic theory of gases, and energy changes within reactions.

Read more...

A guide to modern theoretical physics

Modern theoretical physics is a vast and technically challenging subject, which is often explained in a very unhelpful manner and with an overwhelming amount of mathematical language that is introduced too quickly. This guide attempts to explain the broad theoretical physics concepts in a clear and relatively less-mathematical/jargon-based way.

Read more...

Introduction to multivariable calculus

This is a guide to multivariable calculus from its fundamentals. We will cover differentiation of multivariable functions, the gradient, divergence, and curl operators, as well as integration in multiple dimensions, on a beginner's level. It is highly recommended to look over this guide before (or at the same time as) learning any advanced topics in math and physics.

Read more...

My HTML boilerplate

Starting an HTML file for a website or webapp can be a very frustrating process; it requires a lot of boilerplate. So this is one that I generally use, that I'm sharing here for hope that others might find it useful.

Read more...

How I make my online notes

In the spirit of sharing and open-source, I thought it might be helpful to share I make these free online notes.

Read more...

Fundamentals of Electromagnetic Theory

These are my personal notes (in some sense, more of a mini-book) on classical electromagnetism. Topics covered include Coulomb's law, electromagnetic fields, electrical potential, introductory circuit analysis, and the Maxwell equations.

Read more...

Introduction to Quantum Mechanics

This a mini-book on quantum mechanics at a beginner's level, with topics covered including wavefunctions, various solutions of the time-dependent and independent Schrödinger equation, the uncertainty principle, and expectation values.

Read more...

Derivations of formulas for elastic collisions

This is an in-depth step-by-step derivation for elastic collisions in 1D, a companion guide to the Classical Dynamics Notes.

Read more...

Introduction to Python programming

There are notes taken in CS1100 at RPI, and cover introductory programming using the Python language.

Read more...

Philosophy notes

These are notes from the "Great Ideas in Philosophy" course taken at RPI, covering the history of philosophy, questions of identity and ethics, Eastern and Western philosophical traditions, and key figures in both ancient and modern Philosophy.

Read more...

Series and sequences

These are notes taken in MATH 1020 (Calculus II) at RPI, covering sequences, series, Taylor expansions, convergence and divergence tests, and examples of each.

Read more...

Introduction to Differential Equations

These are my notes taken in RPI's MATH 2400 course. A special thanks to Dr. Kam of Rensselaer Polytechnic Institute for her excellent instruction and permission to share these notes.

Read more...

Introductory classical dynamics

These are notes taken in RPI's Physics 1150 class, relating to introductory classical dynamics - essentially, Newtonian mechanics. Make sure to read the calculus series first as these notes are calculus-heavy.

Read more...

A "new" way to define functions

When we start to learn about differential equations, one of the first things we're taught about them is that they're often unsolvable - a fact that most students just learn to accept. What we're not often taught is why so many differential equations are considered unsolvable. It turns out, it has everything to do with how we define "solving" a differential equation.

Read more...

Visualizing curvature in General Relativity

General Relativity is a theory of gravity that is formulated in a 4-dimensional spacetime. So how do we visualize spacetimes, if they're 4D? This article will hopefully explain the mathematics of how one type of visualization, embedding diagrams, work.

Read more...

Introduction to Integral Calculus

These are notes taken during RPI's MATH 1010 course, on the topic of integrals and their applications in calculus.

Read more...

Notes on ecology

Ecology is the scientific study of organisms and their interactions with each other and the environment. These are my notes on ecology from BIO 1010.

Read more...

The more general kinematic equations

Kinematics is one of the most fundamental parts of physics. In fact, determining the motion of objects is essentially where physics originated. Today, we'll take a close look at kinematics, and in particular, a more nonstandard formulation of kinematics.

Read more...

A proof of the area of a circle

Circles are one of the most ubiquitous yet most mysterious objects found in math. This is because its area formula involves a seemingly unlikely object - an irrational number. And yet circles are some of the most common shapes in the universe, and finding the area of circles (or circle-derived objects) is a must for so many applications in math and physics. So we need a way to find the area of a circle.

Read more...

Notes on special relativity

These are notes taken in RPI's Physics 1140 class, relating to special relativity.

Read more...

Solving the wave equation

The wave equation is a ubiquitous partial differential equation found in many areas of physics. In this guide, we will sketch out the basic approach to solving it.

Read more...

Genetics & medicine notes

These notes contain the second unit of notes from BIO 1010 at RPI.

Read more...

Solving separable partial differential equations

Partial differential equations have a reputation for being impossible to solve. And in many cases, this is true - they are extremely difficult to analytically solve for a general solution. However, when a partial differential equation is separable, it can be solved fairly straightforwardly, as a system of ordinary differential equations. Here is how to do so.

Read more...

Introduction to Differential Calculus

These are notes taken during RPI's MATH 1010 course, on the topic of derivatives and their applications in calculus.

Read more...

Null Geodesics

It has always been an aim of mine to write a physically-based black hole path tracer. However, before doing that, I thought I would take on an easier challenge - plotting the orbits of photons around Kerr black holes, but with code generalizable to any black hole spacetime.

Read more...

LaTeX math tutorial

LaTeX is a powerful language used for writing academic papers. In this article, we'll focus not on the full language, but only the portions relevant to math typesetting.

Read more...

Feynmann's technique for integration

Feynmann's technique is a technique for evaluating certain difficult definite integrals. Note definite integral here, it doesn't do anything to help find antiderivatives. In fact, Feynmann's technique is especially helpful with finding definite integrals that have no elementary antiderivative.

Read more...

Notes on logarithmic and exponential functions

These are notes taken during RPI's MATH 1010 course, relating to a review of exponential and logarithmic functions for calculus.

Read more...

Notes on limits for calculus

These are notes taken during RPI's MATH 1010 course, on the topic of limits in calculus.

Read more...

Solving ODEs and PDEs with neural networks

Typical numerical methods to solve ordinary differential equations and especially partial differential equations require very fine grids to be able to attain accurate results, and suffer from the curse of dimensionality. This is an alternate method to solve ODEs and PDEs with neural networks, which solves both these issues.

Read more...

Bio evolution notes

These are notes taken during RPI's BIO 1010 course, relating to a review of evolution and life.

Read more...

Notes on a review of trigonometry

These are notes taken during RPI's MATH 1010 course, relating to a review of trigonometry for calculus.

Read more...

Waves and oscillations notes

These are notes taken during RPI's PHYSICS 1140 course, relating to a review of waves and oscillations.

Read more...

Building a neural network library in Rust, part 0

This is the first article in a multi-part series detailing the process of building a neural network library in pure Rust, based off my experience making the elara-math library.

Read more...

Mass driver interstellar propulsion

A very rough sketch of a mass-driver based interstellar propulsion method is discussed and analyzed.

Read more...

Simulating superradiance reactors, part 3

In this third part of the superradiance series, a series of posts focused on creating a preliminary, naive raytracer for simulating superradiance reactors, we will explore solving for the vector of a reflected light ray.

Read more...

Simulating superradiance reactors, part 2

Again, we return to the superradiance series, a series of posts focused on creating a preliminary, naive raytracer for simulating superradiance reactors. This time, we will explore differential equation solvers.

Read more...

Simulating superradiance reactors, part 1

We return to the superradiance series, a series of posts focused on creating a preliminary, naive raytracer for simulating superradiance reactors. This time, we will explore geodesics in the Kerr spacetime, and write a Runge-Kutta solver for systems of differential equations.

Read more...

Simulating superradiance reactors, part 0

This is to be the beginning of a series of posts focused on creating a preliminary, naive raytracer for simulating superradiance reactors.

Read more...