cleanyourtv-app
Clean Your TV를 위한 커뮤니티 제작 모바일 앱
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Rough estimates of the number of chemically stable molecules made of a given set of elements, for every size up to a maximum number of heavy atoms. Counting follows GDB conventions:
pip install -e ".[test]"
python -m chemuniverse --max-atoms 11 --elements C N O F --exact-up-to 6 --samples 10 --seed 0
n molecules ± SE mode cumulative
1 4 exact 4
...
6 8738 exact 1.027e+04
7 6.695e+04 2.1e+03 estimate 7.722e+04
...
11 5.73e+08 4.2e+07 estimate 6.291e+08
total: 6.291e+08 ± 4.2e+07 (95.7 s)
From Python: chemuniverse.estimate(max_atoms, elements, RuleConfig(...), k_exact, samples, seed, method, jobs) returns one result per size.
--jobs N runs exact subtrees and sampling passes in N worker processes, or N threads with the Rust core. The results are identical for any N.
rust/ is a Rust port of the hot paths: tree, canonical labeling, payload and SMILES. It produces exactly the same tree, counts, SMILES and estimates as the Python code.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # once, if Rust is not installed
pip install ./rust # builds and installs chemuniverse-core
CHEMUNIVERSE_BACKEND=python forces the pure-Python code.--jobs 10.design/prd/0002-performance.md.Any run can be split into independent shards for a task farm. The reduced result is identical to a single-machine run.
python -m chemuniverse shard plan runs/cnof12 --kind exact --max-atoms 12 --elements C N O F --shards 4000
python -m chemuniverse shard run runs/cnof12 --jobs 10 # locally, or one task per shard on a cluster
python -m chemuniverse shard reduce runs/cnof12
--kind is exact, export (SMILES) or passes (stratified sampling, with one shard per pass).scripts/hpc/run_ensemble.py runs the shards with ensemble_launcher.scripts/hpc/crux/iri_job.py. See ADR 0012.Exact enumeration builds every molecule exactly once, so it can write them out as a GDB-style dataset:
python -m chemuniverse export --max-atoms 9 --elements C N O F --out data/cnof9 --jobs 10
n{size}_part{k}.smi.gz, with one Kekulé SMILES per line, plus a manifest.json that records the elements, the rules and the count per size.docs/ is a static page, published with GitHub Pages: https://autonomous-scientific-agents.github.io/Chemical-Universe/
chemuniverse results: exact, or sampled with ±2 SE.A step-by-step guide to the method (graphs, stability rules, canonical augmentation and tree sampling) is at https://autonomous-scientific-agents.github.io/Chemical-Universe/method/
The data in docs/data.js is generated by:
python scripts/build_site_data.py --max-atoms 17 --samples 12 --jobs 10 # ~25 min with the Rust core
All halogens obey the same rules, so the 128 possible element choices reduce to 40 runs. Each run is cached in build/site/, so an interrupted build resumes.
design/ holds the reasons behind the code:
design/adr/;design/prd/;design/README.md.The AI coding sessions that built this project are archived in agent-traces/. Their replays are published at https://autonomous-scientific-agents.github.io/Chemical-Universe/agent-traces/
Skeleton tree. The nodes are connected graphs whose vertices are labeled by element.
Payload. For each skeleton, the program:
(element, H) labelings up to symmetry.Resonance/Kekulé structures (e.g. benzene) therefore count once.
Exact counts up to --exact-up-to heavy atoms come from a full traversal of the tree.
Estimates for larger sizes come from sampling the tree below the exact frontier.
--samples passes.--method knuth): random root-to-leaf walks, each weighted by the product of branching factors along the way.
Each group can be turned off from the command line.
| Group | Rules | Flag |
|---|---|---|
| Valence | C4, N3, O2, S2, P3, Si4, B3, halogens 1; optional S 4/6 and P 5 | --hypervalent |
| Bond orders | ≤ 3; no triple bonds on O, S or halogens | --no-bond-order-limits |
| Strain | no triple bond in a ring < 8 atoms; no double bond in a 3- or 4-membered ring; no cumulated bonds at an atom in a ring < 9; Bredt (no multiple bond at a bridgehead of rings ≤ 7) | --no-strain |
| Heteroatoms | no O–O, N–O or halogen–(N, O, S, halogen) bonds; no enols; no hemiacetals, hemiaminals or gem-diols | --no-heteroatom, --allow-n-o |
| Validation | acyclic only / single bonds only | --no-rings, --no-multiple-bonds |
Strict tier (--rules strict, off by default) | S1 no heteroatom chains X–X–X; S2 no S–O; S3 no 3/4-ring with ≥ 2 heteroatoms; S4 no enethiols, NH-enamines, ynols/ynamines, imidic/thiono acids, ketenes; S5 no hemithioacetals; S6 no thioaldehydes/thioketones. Keeps 24% of C,N,O,S and 56% of C,N,O,F molecules at 8 atoms (ADR 0015) | --no-hetero-chains, --allow-s-o, --no-small-ring-heteroatoms, --no-tautomer-filter, --no-thio-gem, --no-thiocarbonyl-filter |
pytest checks:
With C, N, O, F up to 11 atoms there are exactly 698,073,917 molecules (6.98×10⁸; 8,303,267,373 up to 12 atoms). This is about 27× GDB-11 (2.6×10⁷), which uses much stricter functional-group and ring filters.
Exact C, N, O, F counts per size, computed on ALCF Crux (sizes 10–12 for the first time; 12 atoms took 86 core-hours on 4 nodes):
| n | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|
| molecules | 67,403 | 583,112 | 5,526,145 | 56,997,371 | 634,889,614 | 7,605,193,456 |
Exact C, N, O, S counts (exported as a dataset; see below):
| n | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|
| molecules | 219,566 | 2,129,403 | 22,382,806 | 253,018,485 | 3,057,059,302 | 39,320,382,465 |
| Dataset | Molecules | Size | Manifest |
|---|---|---|---|
chemuniverse-CNOS-le12: all C, N, O, S molecules up to 12 heavy atoms, basic rules | 42,655,220,742 | 132 GB (74 gzip SMILES chunks) | results/chemuniverse-CNOS-le12/manifest.json |
chemuniverse-CNOS-le12-strict: the same with the strict tier (ADR 0015) | 8,060,129,218 | 26 GB (23 chunks) | results/chemuniverse-CNOS-le12-strict/manifest.json |