Notes

Relativity (Escher)

June 18, 2026

Aim: Design a perspective-based game where:

  1. The player initially doesn’t know the rules and must figure them out.
  2. If the player knows the rules, the game is trivial.
  3. Level nn introduces a counterexample to what the player thinks the goal is.

The game is perspective-based because it is possible for the player to possess a sub-par world model (perspective) (i.e., one that only perfectly holds from Level 1 to ii) and still beat the game. World models are built in varying abstraction hierarchies, as shown in [1]:

Two-panel diagram: (a) an abstraction hierarchy of world models, from observations at Level 1 up through a structured probabilistic instance model to increasingly abstract principles at Level n; (b) a parallel game hierarchy, from broad game category down through sub-category, instance, and level to interactions within a level.

This is analogous to Relativity (e.g., the staircase in one orientation is a roof in another).

M. C. Escher, Relativity (1953) — a lithograph of staircases and figures oriented to three different gravitational directions.
Relativity, Escher [2]

https://arxiv.org/pdf/2507.12821

Loose thoughts: if a platformer, the game map might be similar to Relativity. What seems like a block in 2D could be a door in 3D; progressing across levels in 2D in a scrolling platformer is in reality walking through doors in a 3D choose your own adventure; the 3D choose your own adventure could have interesting topologies, like a Mobius strip taking you back to the start, but with different mechanics only visible in 3D (so if the player still has a 2D world model, they have to build a fake mod 2 rule that doesn't capture the real universe's mechanics).

Fugue: The orphans' crossroads (Bach, "Little" Fugue in G minor, 0:00-0:55)

June 17, 2026

An abandoned road,
Silent,
Besides the quiet footsteps,
Of two war orphans,
Walking towards each other.

A frail young boy,
Starved,
Ribcage poking through aged skin.
Bright crimson hair,
Beautiful,
Yet matted,
By the cold wind,
And lack of shelter.

An old man,
Long white beard,
And bald head,
Who only knew pain:
At age seven,
Mother's throat slit,
In the living room,
...Father, gutted,
Doused in gasoline,
And ignited,
By enemy troops.


The old man,
Glancing at a fellow war orphan,
Eyes him,
Smells him,
Ignores him,
And trods along the path to his village,
As countless others had done to him before.
"Learn pain," he yells silently,
"And feel what I feel.
Orphan...so? You're still a boy.
Whereas I had to endure that,
For my entire life."


The old man,
Pitying a fellow war orphan,
Clothes him,
Bathes him,
Feeds him,
And reads him stories,
As he warms in the campfire.
But what started as pity,
Grows into habit,
And soon,
Years pass,
Their bond morphing,
From stranger and stranger,
To father and son.

But alas,
The old man,
Had unfinished war duties,
To fulfill,

Without the boy.

So as Father,
Attempts to make,
His way home,
The boy grabs,
An origami rose,
From his bag,
Looks up,
With innocent eyes,
Teary,
Presenting his father with a gift.

So as Father,
Attempts to make,
His way home,
The boy grabs,
A dark steel rod,
And,
Once-again betrayed,
Pierces the old man's chest from behind,
Kicking him into the lake.


And,
After fifty long years,
The old man,
Pushing one more away,
Remains empty,
Devoid of a human heart.


And,
After fifty long years,
The old man feels content,
For he finally has,
A single soul,
To call his own.


And,
After fifty long years,
The frog,
At the bottom of the well,
Drifts off,
Into the great ocean.

GPU-Accelerated Simulated Annealing for VLSI Macro Placement

June 17, 2026

Given a rectangular chip die, a set of rectangular macros, fixed pins, and a hypergraph netlist, the program searches for a legal macro placement that minimizes estimated wirelength and overlap, with the heavy cost evaluation on the GPU.

Background. Macro placement is an important problem in chip physical design. In modern chips, large blocks such as SRAMs, analog blocks, accelerators, and IP modules must be placed on a two-dimensional die. The placement has to satisfy geometric constraints, such as keeping macros inside the die and avoiding overlap, while also optimizing objectives such as wirelength, routing congestion, and timing.

Input: a rectangular die, a set of rectangular macros (design blocks), and a set of nets (wires) connecting those macros and fixed pins. For example:

{
  "die": {"width": 1000, "height": 1000},
  "macros": [
    {"name": "m0", "width": 100, "height": 80},
    {"name": "m1", "width": 120, "height": 90}
  ],
  "pins": [
    {"name": "p0", "x": 0, "y": 500}
  ],
  "nets": [
    ["m0", "m1", "p0"]
  ]
}

The goal is to assign each macro an (x,y)(x, y) location such that the macros do not overlap and the estimated interconnect cost is low. This is well-suited for CUDA because many parts of the placement objective are parallelizable. For example, the half-perimeter wirelength of each net can be computed independently. Also, many simulated annealing chains can be run independently in parallel, allowing the GPU to explore many possible placements at once.

The program first generates an initial random placement. The CPU baseline improves the placement using simulated annealing. Then the CUDA implementation runs many annealing chains in parallel and returns the best placement found.

Computation. Each placement consists of coordinates for NN macros P={(xi,yi)}i=1NP = \{(x_i, y_i)\}_{i=1}^{N} where macro ii has width wiw_i and height hih_i. The cost function combines wirelength, overlap, and boundary penalties:

C(P)=αHPWL(P)+βOverlapPenalty(P)+γBoundaryPenalty(P) C(P) = \alpha \cdot \operatorname{HPWL}(P) + \beta \cdot \operatorname{OverlapPenalty}(P) + \gamma \cdot \operatorname{BoundaryPenalty}(P)

The half-perimeter wirelength of a net nn is:

HPWL(n)=(maxpnxpminpnxp)+(maxpnypminpnyp) \operatorname{HPWL}(n) = \left(\max_{p \in n} x_p - \min_{p \in n} x_p\right) + \left(\max_{p \in n} y_p - \min_{p \in n} y_p\right)

The total wirelength is HPWL(P)=nNHPWL(n)\operatorname{HPWL}(P) = \sum_{n \in \mathcal{N}} \operatorname{HPWL}(n) where N\mathcal{N} is the set of nets.

The overlap penalty between two macros ii and jj can be computed using their rectangle intersection area. If macro ii occupies [xi,xi+wi]×[yi,yi+hi][x_i, x_i + w_i] \times [y_i, y_i + h_i] and macro jj occupies [xj,xj+wj]×[yj,yj+hj][x_j, x_j + w_j] \times [y_j, y_j + h_j], then their overlap area is:

max ⁣(0,min(xi+wi,xj+wj)max(xi,xj))max ⁣(0,min(yi+hi,yj+hj)max(yi,yj)) \max\!\left(0, \min(x_i + w_i,\, x_j + w_j) - \max(x_i, x_j)\right) \cdot \max\!\left(0, \min(y_i + h_i,\, y_j + h_j) - \max(y_i, y_j)\right)

The total overlap penalty is:

OverlapPenalty(P)=i<joverlap(i,j) \operatorname{OverlapPenalty}(P) = \sum_{i < j} \operatorname{overlap}(i, j)

The simulated annealing algorithm proposes random moves such as moving one macro to a new location or swapping two macros. If the new placement has cost difference ΔC=C(Pnew)C(Pold)\Delta C = C(P_{\text{new}}) - C(P_{\text{old}}), then the move is accepted with probability p=min ⁣(1,eΔC/T)p = \min\!\left(1, e^{-\Delta C / T}\right) where TT is the current temperature.

The CPU version runs a single simulated annealing chain. The CUDA version runs many independent chains in parallel, each starting from a different random initial placement. At the end, the program chooses the best placement among all chains.

Results. Each synthetic benchmark below uses the same SA schedule (TT from 100100 to 0.0010.001, cooling 0.9950.995, 30,00030{,}000 moves, seed 4242) and the same random initial placement per size. The CPU baseline runs a single annealing chain; the GPU implementation runs 6464 independent chains and keeps the best.

Benchmark Macros Nets Die CPU total GPU total CPU time GPU time Speedup
Small 8 20 1000×1000 15,145 15,086 124 ms 510 ms 0.24×
Medium 64 200 4000×4000 796,481 755,343 3,474 ms 1,241 ms 2.80×
Large 256 1000 10000×10000 11,826,771 11,603,684 44,758 ms 12,761 ms 3.51×

The GPU pays off once the problem is large enough to amortize kernel-launch and transfer overhead: it is ~2.8× faster at medium and ~3.5× faster at large, while also reaching a slightly lower final cost (more chains explore more of the space). On the tiny 8-macro problem the GPU is slower than the CPU (0.24×) — there isn’t enough work to hide the overhead.

Small benchmark. 8 macros, 20 nets, 1000×1000 die. Both solvers cut the cost ~99% with zero overlap and zero boundary violation.

Metric CPU GPU
Total cost 15,144.77 15,085.94
HPWL 15,144.77 15,085.94
Overlap 0.00 0.00
Boundary 0.00 0.00
Improvement 99.12% 99.13%
Runtime 124.2 ms 510.1 ms
Convergence: CPU vs GPU, small benchmark
Best total cost vs. move (log scale).
CPU convergence, small benchmark
CPU (1 chain)
GPU convergence, small benchmark
GPU (64 chains)

Medium benchmark. 64 macros, 200 nets, 4000×4000 die.

Metric CPU GPU
Total cost 796,480.57 755,342.94
HPWL 796,310.11 755,104.69
Overlap 17.05 23.82
Boundary 0.00 0.00
Improvement 97.93% 98.04%
Runtime 3,474.2 ms 1,240.8 ms
Convergence: CPU vs GPU, medium benchmark
Best total cost vs. move (log scale).
CPU convergence, medium benchmark
CPU (1 chain)
GPU convergence, medium benchmark
GPU (64 chains)

Large benchmark. 256 macros, 1000 nets, 10000×10000 die.

Metric CPU GPU
Total cost 11,826,770.79 11,603,684.00
HPWL 11,814,036.77 11,597,189.00
Overlap 1,056.78 448.23
Boundary 21.66 20.13
Improvement 93.05% 93.18%
Runtime 44,757.9 ms 12,761.3 ms
Convergence: CPU vs GPU, large benchmark
Best total cost vs. move (log scale).
CPU convergence, large benchmark
CPU (1 chain)
GPU convergence, large benchmark
GPU (64 chains)

At medium and large sizes a small residual overlap remains (the penalty keeps it tiny but nonzero); the 8-macro case converges to exactly zero overlap.

Euthyphro, Plato

June 16, 2026

[book]

[1] Socrates outlines a problem with a god-given absolute piety within a polytheistic religion: are pious things pious because the gods love them, or do the gods love them because they are inherently pious?

  • The main framework for the former is divine command theory. Risk: morality becomes arbitrary.
  • Frameworks for the latter: moral realism, rationalist ethics, etc. Risk: morality is defined outside of god(s).

[2] Euthyphro’s claims are that 1) Zeus would prosecute his own father for manslaughter, 2) he is the only man who knows what the gods would do (perfect religious knowledge), and 3) Man should aspire to do what God would.

  • Socrates’ initial critique against 1) is a pushback on prosecuting one’s family. To this, Euthyphro cites Zeus, who put his father Kronos in bonds for “unjustly swallowing his sons,” and Kronos, who castrated his father Ouranos.
  • Socrates finds trouble with 3) as it requires a definition of piety and an agreement on all gods’ actions. See [3].

[3] The present situation is generalized into a debate on piety, which Socrates opens by asking for a simple definition.

  • Euthyphro’s initial definition: piety is prosecuting the wrongdoer. Socrates easily refutes this as an example of piety rather than a definition.
  • Euthyphro’s revised general definition: what is loved by the gods is pious, and what is not loved by the gods is impious (loved by the gods iff. pious).
  • Socrates points out the problem of disagreement on piety within a polytheistic framework, to which Euthyphro claims (see [1]) that on his current matter, the gods reach agreement. This implicitly re-defines piety to “what is loved by ALL gods is pious”, and impiety to “what is hated by ALL gods is impious.”
    • This breaks the biconditional: now, something can be pious without being loved by all the gods (since it no longer falls under the definition of impiety). Similarly, something can be impious without being hated by all the gods.
    • This changes Euthyphro’s “definition” of piety to an example of it (“what is loved by ALL gods” is an example of many things which are pious).
  • Socrates asks, “is the pious loved by the gods because it is pious, or is it pious because it is loved by the gods?”
    • (Biconditional can hold; good movie iff. is loved by all critics. However, is it a good movie because it is loved by all critics, or is it loved by all critics because it is a good movie? The latter is more plausible; there exists a deeper reason humans find a movie “good,” and all critics have captured it.)
    • Socrates takes a similar stance: the pious is loved by the gods because it is pious.
  • Euthyphro revises piety again: “the part of justice concerned with attending to the gods.”
    • This definition seems to be something loved by all the gods, so it is valid.
    • Socrates refutes: “what can humans give gods that they don’t already have or can get?”
    • (I disagree with Euthyphro’s slavery analogy; because humans are finite, the master puts the slave to work on tasks he does not have time or will for. This does not seem to be the form of “attending” gods would like from humans. Rather, the only thing gods cannot do (self-imposedly) is violate human free will; hence, they require attending in human belief, e.g., prayer, sacrifices, etc.)
      • Still, if piety is sacrifice/prayer that pleases the gods, then Euthyphro has circled back to “pious is what is loved by the gods.”

My Mother and My Father

June 16, 2026

[video]

The meaning of life

June 4, 2026

I had to think about this question a lot when:

  1. Moving to California and forfeiting college enrollment.
  2. Living alone in Sonoma County, working to prove to parents, friends, VCs, and myself that I was exceptional.
  3. Working 16 hour days in Arcadia, ending up in the hospital (treating the people around me poorly; zero tolerance for distractions).
  4. Meeting my (former) love; sleepless nights working to afford an immigration lawyer so she wouldn’t have to leave the US.
  5. Contemplating various ethical dilemmas in business.
  6. Shutting down my second startup.
  7. My friend’s death.
  8. Quitting my first and second (well-paying) jobs.
  9. Giving up my girlfriend’s hand in marriage and coming to Caltech.
  10. Watching my ex girlfriend struggle with homelessness, solitude, and suicide; failing to get the New York Police Department to track her down.
  11. My grandfather’s death.

My experiences have shaped me into (currently) a firm existentialist. I value:

  1. Knowledge and understanding. I want to understand and imagine the mathematical ideas that lie even beyond our observable universe; what can be thought of? What can’t be computed? I want to understand the recursive structure of language; the structure of music, comedy; what is moral, just (how would various philosophers have approached my gap year?); the culty-ness of startups and universities, Girard’s mimetic theory, and organized (political?) (religious?) groups. The world is my oyster.
  2. Being special. I used to be afraid of being normal. I felt special not going to college; I felt special as the only kid hanging with rich guys; I felt special hearing Sam Altman’s advice for me; I felt special when I dated a woman a decade older than me; I felt special being the only college-less employee at Etched (I heard they hired a high-schooler after I left!). I wanted to be the best and for history books to remember me. I admired (and hated) people who were more special than me and wanted nothing but to run circles around them. See this (corny but true).
  3. Self-improvement. After running my second business for a couple of months I began to feel unstoppable; I was solving challenge after challenge. I know that doesn’t sound unique to business…I can’t explain this properly yet; I’ll add examples when I think of them.
  4. Love. My favorite one-liner encapsulating love is ironically from Nietzsche (Beyond Good and Evil, Aphorism 153): “That which is done out of love always takes place beyond good and evil.” 'nuff said. See this.

My chat with Sam Altman

June 1, 2026

Sam Altman speaking at an event.

I used to help out at a VC/accelerator that Sam Altman put money into. My job was to read applications and determine who gets accepted (maybe funded). I saw it as paying back gratitude to something fundamental to my journey: 1) I had participated in it before, and 2) Nick and Aili helped give me a place to live when I was relatively desperate.

I met Sam Altman a couple times but I didn’t have a solid chance to chat until SF Parc (at the accelerator). We went over my life story and planned next steps. I expected him to be super anti-college; but he gave me surprising advice: go to Caltech! He mentioned some important facts that I needed to hear at the time:

  • "Don't be afraid. The regret of watching someone else live the life that could've been you outweighs the comfort of safety."
  • "Your life is yours; not your parents', investors', friends', or strangers'. Do what you want to do, not what you feel like you should be doing."
  • "Only you have enough context to understand the best decision for yourself. Be careful and don't average advice."
I think I've internalized this well, but I've found many freshman friends who I think could benefit from hearing these three things.

Places I've lived

May 30, 2026

I moved around a lot, so everywhere I lived felt temporary (including Caltech, for the first three months). Some places I’ve lived are:

  1. Ashburn (longest)
  2. Hotel Trio, Sonoma County
  3. Arcadia House, North Berkeley
  4. Dogpatch
  5. Virginia Swan Pl, Cupertino
  6. Redberry Way, San Jose
  7. 29 Cecil Ave, San Jose (first time being responsible for a home)
  8. 324 South Baywood Ave, San Jose
  9. 524 Columbus Ave, North Beach
  10. Caltech, Pasadena (2nd longest)

Each place comes with memories, and a past version of myself; the places that are burned deepest in my heart are 1, 7, 8, 3, 2 in that order.

Mother's Day

May 10, 2026

On May 10,
2025,
Mother,
Was stuck at home.
Her son,
In college,
And a pile of dishes,
Unwashed,
Left in the sink,
Looking like they
Had just spent time on the floor.

The TV,
Blaring,
She turns her head,
Absent-mindedly.
And for a warm,
Fleeting moment,
She is excited,
As she sees her eldest son’s name,
On the Channel news report.
Directly below,
The yellow tape,
Totaled car,
And burnt up body,
Only recognizable,
By the ink tattooed on his severed arm,
Lying,
Cold,
All by itself,
On the pavement.

Amma,
She read out loud.
For even after death,
Her beautiful son,
Had her name,
Burned,
Into his skin.
So she smiles,
A knowing smile,
Marking a date,
On her pocket calendar.
And,
She trudges up the stairs,
With a rope in her hand,
Dutifully knotting it,
To a blade in her ceiling fan.

And,
Once again,
On Mother’s Day,
The two of them were one.

Memorial at a tree in a cemetery: a framed photograph of a young man and white lilies in a vase.

Thanks to Tuyako for discussing this poem with me.

Birthday Party

May 2, 2026

On March 9,
He comes home,
With a birthday cake,
To wish her,
And hug her.
Only to find her,
With a rope around her neck,
Hanging from the ceiling fan.

He cuts her down,
And lays her limp body on the bed,
Propping a pillow behind her neck.
Then,
He feeds her cake,
Like she used to do
To him.

And,
Wiping crumbs off her stiff lips,
While squeezing her lifeless hand,
Tightly,
He laughs with her corpse,
'Till the sun sets.

Giving the dead girl,
Her very first
Birthday party.

100 Letters To A Dead Girl.

Thanks to Jan for feedback.

The Girl at the Phone Booth

April 22, 2026

The girl at the phone booth
Makes a call.
“Mom…Dad!” she cries.
No response at all.

As a rumbling train passes by,
She remembers Father’s final lie.
“America has a lot in store.”
Then he shoved her out the door.

When the sun begins to set,
The brave girl shivers from the cold.
She doesn’t own a jacket,
Just a worn-out shirt, filled with holes.

She puts down the phone in dismay,
And on the rock-hard ground, her head lay.
She tries dozing off, into a slumber,
Ignoring her empty stomach’s hunger.

Thanks to Nicole for reading drafts.