Skip to content

Instantly share code, notes, and snippets.

@jmikedupont2
Created April 3, 2026 18:35
Show Gist options
  • Select an option

  • Save jmikedupont2/b0766375056f3e0c86ae7357902e809a to your computer and use it in GitHub Desktop.

Select an option

Save jmikedupont2/b0766375056f3e0c86ae7357902e809a to your computer and use it in GitHub Desktop.
Monster Moonshine LLM Brief Generator
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Monster Moonshine LLM Brief Generator</title>
<style>
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;600&display=swap');
:root {
--bg: #0a0a0f;
--text: #e8e8f0;
--accent: #6366f1;
--panel: #12121a;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: 'JetBrains Mono', monospace;
background: var(--bg);
color: var(--text);
min-height: 100vh;
padding: 1rem;
}
h1 {
font-size: 1.5rem;
color: var(--accent);
margin-bottom: 0.5rem;
}
.subtitle {
color: #666;
font-size: 0.8rem;
margin-bottom: 1rem;
}
.controls {
display: flex;
gap: 0.5rem;
flex-wrap: wrap;
margin-bottom: 1rem;
}
select, button {
padding: 0.5rem;
background: var(--panel);
border: 1px solid #333;
color: var(--text);
border-radius: 4px;
cursor: pointer;
font-family: inherit;
}
button {
background: var(--accent);
border-color: var(--accent);
}
button:hover {
opacity: 0.8;
}
#output {
background: var(--panel);
border: 1px solid #333;
border-radius: 6px;
padding: 1rem;
min-height: 300px;
white-space: pre-wrap;
font-size: 0.85rem;
line-height: 1.6;
overflow-x: auto;
max-height: 60vh;
overflow-y: auto;
}
.copy-btn {
margin-top: 0.5rem;
}
.checkbox-list {
display: flex;
flex-wrap: wrap;
gap: 0.3rem;
margin-bottom: 1rem;
}
.checkbox-list label {
display: flex;
align-items: center;
gap: 0.2rem;
padding: 0.3rem 0.5rem;
background: var(--panel);
border-radius: 4px;
font-size: 0.75rem;
cursor: pointer;
}
.checkbox-list input {
accent-color: var(--accent);
}
</style>
</head>
<body>
<h1>MONSTER MOONSHINE LLM BRIEF</h1>
<p class="subtitle">Select items to include in LLM brief</p>
<div class="checkbox-list" id="checkboxes"></div>
<div class="controls">
<button onclick="generate()">Generate Brief</button>
<button onclick="copyBrief()" class="copy-btn">Copy to Clipboard</button>
</div>
<div id="output">Select items and click Generate...</div>
<script>
const PRIME_COLORS = {
2: '#E74C3C', 3: '#3498DB', 5: '#2ECC71', 7: '#F39C12',
11: '#9B59B6', 13: '#1ABC9C', 17: '#E91E63', 19: '#00BCD4',
23: '#FF5722', 29: '#673AB7', 31: '#795548', 41: '#607D8B',
47: '#FF9800', 59: '#4CAF50', 71: '#3F51B5'
};
const SSP = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 41, 47, 59, 71];
const MONSTER_REPS = [
1, 196883, 21296876, 842609326, 18538750076, 19360062527, 293553734298,
3879214937598, 36173193327999, 125510727015275, 190292345709543, 222879856734249,
1044868466775133, 1109944460516150, 2374124840062976, 8980616927734375, 8980616927734375,
15178147608537368, 39660520552077425, 60359800576579350, 251098487132187500, 290568421805921077,
336041615485626050, 2500435234254428856, 2986480825407204125, 3503434660075044981, 3503434660075044981,
3605718753596953125, 8456836343580310400, 8754193822112578125, 28585990950721640625, 30815545786259524745,
31569817307122699605, 47377503606648784400, 49609712911192813665, 77316619273928125000, 130415350420342968750,
155943076739182582850, 172399434201593354756, 172399434201593354756, 286243267692724486144,
286243267692724486144, 379913824694312370176, 640558364167263622626, 640558364167263622626,
643356925889917747200, 691170144025469730622, 691170144025469730622, 776097192277137500000,
918438233727730974720, 1201241700908448332364, 1353006807137391674268, 1480279477146615234375,
1480279477146615234375, 1768130802583126953125, 1768130802583126953125, 2351753641814605348320,
2382987417506242421875, 4567199176912486400000, 4567199176912486400000, 5578077210155766091776,
6566555764392010419123, 7226910362631220625000, 10145274012943412428800, 12810005542623250817856,
19795913912408993711352, 21803647757861753437500, 24670833602960142274950, 31714653744947491918600,
41209556844092914062500, 42940402913709544921875, 42940402913709544921875, 60683762052057587326065,
70660346341309333984375, 70660346341309333984375, 86551489469233273849000, 91068387388302451493925,
114212876389603002704448, 115192831837135016250000, 146575737439884098045700, 149614794149226010902528,
149614794149226010902528, 161649111002260792968750, 161649111002260792968750, 191259085113459945312500,
191259085113459945312500, 218028402153522030021875, 220326476909636307378168, 260799524107083767968750,
260799524107083767968750, 261575621299360905468750, 277540481294528814140625, 303379038247015811718750,
331150814995116217581480, 351532203382732066094400, 391009081837477378329600, 392611651975065600000000,
433528694560598978525184, 597787522207315571077947, 597787522207315571077947, 600020772685064502392907,
626877403613887304040448, 626877403613887304040448, 655159231073705404921875, 689763222744895005949242,
689763222744895005949242, 689766726179555080994223, 689766726179555080994223, 1037605886984697481755304,
1361549126105752982272875, 1599110387863558882812500, 1662686180483865572016128, 2181694185821505680397072,
2216343020913351966796875, 2477548750555298068681032, 3282510540283631442175104, 3537292796538741415074900,
3619209050774375426792424, 4004308274823270400000000, 4239315652979009728125000, 4926670174323484069683200,
5334046162969208352215625, 5514132424881463208443904, 5514132424881463208443904, 5514132424881463208443904,
7118465328761788475375616, 7375892500409609408203125, 7567151576542452425781250, 7567151576542452425781250,
7850934959207940600000000, 8394037047155083487634450, 8874260875527017936065100, 9416031858681585751556096,
9479495745805305653125000, 9592298143650890255171584, 9592298143650890255171584, 9592584386918582979657728,
10023854998171489083984375, 12650882100466187033706250, 14930164283563048960000000, 16109407269221032565630370,
22626621365160537099927552, 24546384719289825598186695, 27501917609709102247187500, 29734941419909382162874368,
33684388830359981044531200, 33722191327002668157047380, 37310715211546624000000000, 38471795739256565080575180,
41738941151243953804687500, 41762322738385820195625000, 42001454087954515167503490, 42601474860639579669896397,
43527130990147981755651072, 50572542024949598403750000, 51324350389558097414062500, 56356433273146675005489152,
58437394633227526183321600, 62038057486792249132974080, 63750812845035828079008441, 64326163427522624205703125,
66550339514356152000000000, 69084859008005036431224066, 74612213529720383654779356, 77423398454853064646282250,
83974774459050335630859375, 86206621680977834911875000, 88943820620288343261672393, 103354104243912727763091456,
115165062362004433625000000, 121170799240938738783416925, 124058385593021471188320256, 124982156072747647257292800,
125517264890136048242396811, 129572518017902934396764160, 130287135266837289237316743, 135226984222789977095703125,
136107644194473772613203125, 136574874874360806036041889, 136574874874360806036041889, 138988549876584520148320256,
161561864971171113287540625, 163216709667196367710937500, 172248852397651745653437500, 173865305251972140447265625,
175867626988794162227008203, 177966317773633111417870812, 198203900044423845494482560, 200390867219082687273984375,
203314261261157852274218750, 207467089840006711558593750, 212490247553365721772656250, 241866941438795926688759808,
258823477531055064045234375
];
const ITEMS = [
{ id: 'overview', label: 'Overview' },
{ id: 'order', label: 'Monster Order' },
{ id: 'ssp', label: 'SSP Primes List' },
{ id: 'jcoeffs', label: 'J-Coefficients' },
{ id: 'first10', label: 'First 10 Irreps' },
{ id: 'mckay', label: 'McKay-Thompson' },
{ id: 'factors', label: 'Key Factorizations' }
];
function factorize(n) {
const factors = {};
let d = 2;
while (d * d <= n) {
while (n % d === 0) {
factors[d] = (factors[d] || 0) + 1;
n /= d;
}
d++;
}
if (n > 1) factors[n] = 1;
return factors;
}
function buildCheckboxes() {
const container = document.getElementById('checkboxes');
ITEMS.forEach(item => {
const label = document.createElement('label');
label.innerHTML = `<input type="checkbox" value="${item.id}" checked> ${item.label}`;
container.appendChild(label);
});
}
function generate() {
const checked = Array.from(document.querySelectorAll('#checkboxes input:checked')).map(i => i.value);
let output = '# MONSTER MOONSHINE BRIEF\n\n';
if (checked.includes('overview')) {
output += '## Overview\n';
output += 'The Monster group is the largest sporadic simple group.\n';
output += 'Moonshine connects the Monster to the j-invariant modular form.\n\n';
}
if (checked.includes('order')) {
output += '## Monster Group Order |M|\n';
output += '|M| = 2^46 × 3^20 × 5^9 × 7^6 × 11^2 × 13^2 × 17 × 19 × 23 × 29 × 31 × 41 × 47 × 59 × 71\n';
output += '|M| ≈ 8.08 × 10^53\n\n';
}
if (checked.includes('ssp')) {
output += '## 15 Supersingular Primes\n';
output += ' SSP primes: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 41, 47, 59, 71\n';
output += ' Condition: (p+1) | 24 for each SSP prime\n\n';
}
if (checked.includes('jcoeffs')) {
output += '## J-Invariant Coefficients\n';
output += 'j(q) = q^-1 + 744 + 196884q + 21493760q^2 + 864299970q^3 + ...\n\n';
}
if (checked.includes('first10')) {
output += '## First 10 Monster Irreps\n';
output += '| # | Dimension | Prime Factors |\n';
output += '|---|-----------|---------------|\n';
for (let i = 0; i < 10; i++) {
const f = factorize(MONSTER_REPS[i]);
const primes = Object.entries(f).filter(([p]) => p <= 71).map(([p,e]) => p + (e>1?'^'+e:'')).join('×');
output += `| ${i} | ${MONSTER_REPS[i].toLocaleString()} | ${primes || '-'} |\n`;
}
output += '\n';
}
if (checked.includes('mckay')) {
output += '## McKay-Thompson Observations\n';
output += '- j₁ = 196884 = 1 + 196883 (trivial + first Monster irrep)\n';
output += '- j₂ = 21493760 = 1 + 196883 + 21296876 (sum of first 3 irreps)\n';
output += '- 196883 = 47 × 59 × 71 (smallestMonster rep)\n\n';
}
if (checked.includes('factors')) {
output += '## Key Factorizations\n';
output += '- 196883 = 47 × 59 × 71\n';
output += '- 196884 = 2² × 3³ × 1823\n';
output += '- 21296876 = 2² × 31 × 41 × 59 × 71\n';
output += '- 21493760 = 2^11 × 5 × 2099\n\n';
}
output += '---\nGenerated from Monster Moonshine visualization\n';
document.getElementById('output').textContent = output;
}
function copyBrief() {
const text = document.getElementById('output').textContent;
navigator.clipboard.writeText(text).then(() => {
alert('Copied to clipboard!');
});
}
buildCheckboxes();
generate();
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment