Skip to content

Commit 7a85fa6

Browse files
committed
[act.docs.sigma.D7+] the repo's first thirty seconds, and two of the five screenshots were not shippable
A portfolio repo is read by someone who will not clone it, so the front door is part of the work. Five real captures now sit in docs/screenshots/, hero + a table with captions that say what is on screen and nothing about how nice it is. I LOOKED AT THEM BEFORE PUBLISHING, and that is the reason this commit is not just the agent's output. Two were wrong to ship: ① The proposed hero was a close-up: camera inside the pocket, ligand clipped at the frame edge, most of the image beige ribbon. It does not say what the app IS. Re-shot from the app's own ligand focus pulled back 1.75x, so the whole β-barrel reads with the field well nested inside it, and the Fields shot — the actual differentiator — is now the hero. ② The Fields capture showed the panel printing "Net charge null · Compute time null s". That is the defect the physics session fixed an hour ago, visible in the picture because normalize_meta had started filling absent keys with None and the renderer had not caught up yet. Publishing it would have advertised a fixed bug on the front page forever. Re-shot after the fix; those rows are gone. The captions state chemistry, not adjectives: MW 300.4 with LogP 5.60 flagged red because the ≤5.0 Lipinski rule actually fires on retinoic acid; 2 HBA / 1 HBD / 19 hydrophobic points auto-derived; the ops console reading a live /admin/snapshot. README now points at STATUS.md and ROADMAP.md immediately under the hero, with the deployment answer in the same breath — "is any of this live" is the first question a reader has and this repo answered it wrongly by accident for weeks. Also landing: docs/FRONTEND_STATE_AUDIT.md, 453 lines, and its verdict is unwelcome and correct — ligand-store.ts is SHELFWARE. Zero non-test files import it; exactly one commit ever touched it; ARCHITECTURE.md says the same thing from the other side ("reimplemented inline"). Worse, its own heavyAtomsFromMolfile carries a bug a sibling module found and fixed eleven hours earlier, so adopting it as-is would REINTRODUCE a paid-for fix. Measured, not asserted: 8 modules hold a current ligand and 0 read the store; 10 async paths produce a ligand-shaped result and 7 commit it with no currency check, two of those being multi-second pyscf calls. And it caught my own half-fix in flight: 4f3fe20 repaired the import path but `loadMolecule()` still never clears `this.smilesMolfile`, so picking a PDB structure after a SMILES paste keeps showing the stale molecule across five facets. A fix landing on one path of two, again, found by an outside reader within the hour. NEXT: clear the sticky field; then decide the store's fate — delete or adopt — because shelfware with a known bug is worse than no module at all.
1 parent 7423a87 commit 7a85fa6

7 files changed

Lines changed: 469 additions & 0 deletions

‎README.md‎

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,13 @@
22

33
> **Dirac is to Schrödinger (the company) what the Dirac equation is to the Schrödinger equation: an open-source, browser-native upgrade.**
44
5+
![Dirac's Fields facet: the 1CBS retinoid-binding protein's beta-barrel with a classical electrostatic potential well rendered as a translucent isosurface around the retinoic-acid ligand inside the pocket, computed by the local backend and served from the browser cache](docs/screenshots/02_fields_electrostatic_well.png)
6+
7+
**Where things stand:** [`STATUS.md`](STATUS.md) — what is built, and what is a seam
8+
with nothing writing to it yet. [`ROADMAP.md`](ROADMAP.md) — how these seams reach an
9+
AI-native scientific OS without a rewrite, and the seven changes that would break
10+
that path. Not deployed: no auth, no public URL, three hand-started processes.
11+
512
Schrödinger's Maestro / LiveDesign stack is the commercial state-of-the-art for structure-based molecular design. It is closed, expensive, and desktop-native. **Dirac is the open-source, browser-native answer** — built on the [mol\*](https://github.com/molstar/molstar) 3D engine and the [RDKit-JS](https://github.com/rdkit/rdkit-js) cheminformatics runtime, with every computation happening in the browser via WebAssembly. No license server, no install, no Python backend required for the core workflow.
613

714
The name is intentional. In physics, Schrödinger's equation describes matter at non-relativistic energies; Dirac's equation is its upgrade to the relativistic regime, predicting spin, antimatter, and the fine structure of hydrogen. **Dirac the project aims to be that kind of upgrade over Schrödinger the product** — same domain, deeper formulation, open and accessible.
@@ -18,6 +25,15 @@ Dirac is **one integrated app** with multiple facets, all sharing the same mol\*
1825
| ✅ shipped | **Field Wells** (`facets/field-wells/` + `backend/`) | 3D energy wells rendered in the pocket: classical electrostatic well (Gasteiger/Coulomb), quantum HOMO / LUMO / electron density / QM potential via pyscf HF — `Fields` master-tab. Needs the optional local Python backend (below) |
1926
| 🚧 blocked | **Conformer Explorer** (`facets/conformer-explorer/`) | RDKit ETKDG conformer generation, mol\* morph animation, energy landscape. Blocked in-browser: the vendored RDKit-JS wasm has no `ETKDG`/`EmbedMolecule`/force fields (verified against the binary). Route reopens through the fields backend (RDKit 2026.03 with MMFF) |
2027

28+
## What it looks like
29+
30+
| Screenshot | What's on screen |
31+
|---|---|
32+
| <img src="docs/screenshots/01_lab_1cbs_hbond.png" width="320" alt="Lab facet: 2D RDKit depiction beside the 3D structure"> | **Lab** — the 2D RDKit depiction of REA·A:200 (22 atoms, 1 HBD, 2 HBA) beside the same ligand in the 3D pocket, click-synced in both directions, with the halogen-audit panel stating what a purely geometric profiler would have reported instead. |
33+
| <img src="docs/screenshots/03_properties_cockpit.png" width="320" alt="Properties facet: Lipinski/Veber descriptor dashboard"> | **Properties** — Lipinski/Veber descriptor dashboard for the same ligand (MW 300.4 Da, LogP 5.60 flagged red for exceeding the ≤5.0 rule, TPSA 37.3 Ų, 1 HBD / 2 HBA). |
34+
| <img src="docs/screenshots/04_designer_pharmacophore.png" width="320" alt="Designer facet: pharmacophore feature list and 3D glyphs"> | **Designer** — Pharmacophore Designer feature list auto-derived from the ligand (2 HBA, 1 HBD, 19 hydrophobic points), each with an editable radius, shown in the 3D pocket. |
35+
| <img src="docs/screenshots/05_ops_console.png" width="320" alt="Ops console reading the live field backend snapshot"> | **Ops console** — live read of `/admin/snapshot` from the field backend: 0 jobs running, field-cache health (68 rows, 291.6 MB across 5 field kinds), and the stale-sweep reclaim list. |
36+
2137
### Optional fields backend
2238

2339
The core workflow stays 100% in-browser. The **Fields** facet is the one exception by design — real SCF does not belong in wasm. It talks to a local daemon that turns the focused ligand's molfile into Gaussian-cube scalar fields (already in scene coordinates):

0 commit comments

Comments
 (0)