ai-startup-skills
AI 제품을 만드는 스타트업을 위한 7단계 에이전트 스킬: 검증 → 비즈플랜 → 정책 → 로드쇼 → 고객 확보 → 가격 책정 → 등록
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Exact classifier for small sign-driven integer dynamical systems, in dependency-free Rust, with a live landing page
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
An exact classifier for small discrete dynamical systems, written in dependency-free Rust.
Every universe in this project follows one rule,
an integer state that moves by a velocity chosen only by the signs of its coordinates.
The engine decides where each universe ends up: it stops, loops, escapes in a straight
line, escapes while repeating, or spirals outward. For three elements it settles all
387,420,489 universes exactly, in about 6.5 seconds on 8 cores.
Each universe starts from the zero state, fires every channel once, and is then followed
until its fate is proven.README 전문 보기 ↗An exact classifier for small discrete dynamical systems, written in dependency-free Rust.
Every universe in this project follows one rule,
v(t+1) = v(t) + d(sign v(t))
an integer state that moves by a velocity chosen only by the signs of its coordinates. The engine decides where each universe ends up: it stops, loops, escapes in a straight line, escapes while repeating, or spirals outward. For three elements it settles all 387,420,489 universes exactly, in under 10 seconds on 8 cores, and proves the fate of all but 192 of them.
Live site · Theory notes · Results
Each universe starts from the zero state, fires every channel once, and is then followed until its fate is proven.
| Elements | Universes | Fixed | Cycle | Ray | Helix | Spiral | Undecided |
|---|---|---|---|---|---|---|---|
| N = 2 | all 6,561 | 22.634 % | 1.341 % | 76.025 % | 0 | 0 | 0 |
| N = 3 | all 387,420,489 | 7.176 % | 0.952 % | 90.504 % | 1.297 % | 0.072 % | 0 |
| N = 4 | 2·10⁹ sampled | 1.740 % | 0.318 % | 95.061 % | 2.748 % | 0.130 % | 63,961 |
The N = 4 rows are estimates from a uniform sample of the 1.85·10¹⁵ universes, with 95 % confidence half-widths below 0.001 percentage points. 85 % of the sampled N = 4 spirals are proven; the undecided ones ran out of the 10,000-event budget.
Other findings:
dynamics-engine stable 2-613); the rest have a start that escapes. At
N = 3, 97.54 % are proven unstable and 2.46 % have no escaping start found. A cycle from the
all-fire start often hides instability: 37 % of those universes escape from another start,
and two-element universes can spiral (dynamics-engine stable 2-2800).d = ±(sgn v₁, −sgn v₀), which spirals out by 1 per axis crossing.Full tables, proofs and open questions are in docs/theory.md.
The engine is a single command-line program, dynamics-engine.
Releases has archives for five platforms, each holding the binary, this README and the license:
| Platform | Archive |
|---|---|
| Linux x86_64 (static) | dynamics-engine-x86_64-unknown-linux-musl.tar.gz |
| Linux ARM64 (static) | dynamics-engine-aarch64-unknown-linux-musl.tar.gz |
| macOS Apple silicon | dynamics-engine-aarch64-apple-darwin.tar.gz |
| macOS Intel | dynamics-engine-x86_64-apple-darwin.tar.gz |
| Windows x86_64 | dynamics-engine-x86_64-pc-windows-msvc.zip |
On Linux, for example:
curl -L https://github.com/mukos/dynamics-engine/releases/latest/download/dynamics-engine-x86_64-unknown-linux-musl.tar.gz | tar xz
./dynamics-engine show 2-613
The binaries are not code-signed. If macOS refuses to open one downloaded in a browser, run
xattr -d com.apple.quarantine dynamics-engine; on Windows, choose More info → Run anyway.
SHA256SUMS in each release lists the checksums.
With a stable Rust toolchain (rustup.rs); there are no crate dependencies:
cargo install --git https://github.com/mukos/dynamics-engine
Look at one universe:
dynamics-engine show 2-613
reduced universe 613 (multiplicity 8, canonical: true):
element 0: pos = [ -1 -1 ] neg = [ 0 1 ]
element 1: pos = [ 1 0 ] neg = [ -1 0 ]
events:
step 1 v = [ -1 0 ] drift = [ 0 1 ]
step 2 v = [ -1 1 ] drift = [ 1 1 ]
...
step 16 v = [ 1 0 ] drift = [ -1 -1 ]
fate: cycle of period 10, repeating from step 6
watch it: https://mukos.github.io/dynamics-engine/#u=2-613
A universe id is N-index, the same id the website uses in its #u= links, so any universe
from the site can be replayed in the terminal and the other way round. Then classify every
three-element universe:
dynamics-engine exact --size 3
git clone https://github.com/mukos/dynamics-engine.git
cd dynamics-engine
cargo run --release -- show 3-27411247
cargo test --release
Pushing a version tag (git tag v2.1.0 && git push origin v2.1.0) runs
.github/workflows/release.yml, which tests, builds the five
archives and publishes them as a release.
A universe has N elements. Element e has a positive channel and a negative channel, and a
2N × 2N matrix of zeros and ones says which channels feed which. At every step each active
channel pushes its row, each element collapses to its net value, and the sign of that value
decides which of its channels fires next. On the first step every channel fires.
Reduction. Only the difference between the two bits a row sends to an element matters. Each
pair collapses to a value in {−1, 0, +1}, so the 2^(4N²) bit matrices reduce to 3^(2N²)
universes, 177× fewer at N = 3. What remains is two N × N drift tables d⁺ and d⁻, and the
rule above, where
d(s) = Σ_{s_f = +} d⁺_f + Σ_{s_f = −} d⁻_f
Inside a quadrant the signs do not change, so the velocity is constant and the orbit is a straight line. Orbits are therefore chains of straight segments that bend only on the axes.
The five fates.
| Fate | What happens | Proof |
|---|---|---|
| Fixed | the velocity reaches zero | d(sign v) = 0 |
| Cycle | the state returns to itself | a repeated state |
| Ray | it escapes in a straight line | every coordinate moves away from zero |
| Helix | it escapes while repeating | a segment replays shifted by D with no sign change |
| Spiral | it winds outward | one lap run symbolically: returns lie on a line or plane and the lap map pushes them outward |
dynamics-engine show 4-1337051325212753) is settled within the 10,000-event budget.p + x·q (or a plane). The engine runs one lap with x unknown, splitting x into residue
classes so every jump length stays affine, and gets a map such as x ↦ 2x + 12. If every
branch pushes x outward beyond the current return, the spiral grows forever
(src/spiral.rs, dynamics-engine show 3-27411247).2^N N!) and Burnside
counts of the orbits.malloc. One reusable
workspace per thread and an index odometer took the N = 3 census from 527 s to under 10 s.--offset and --stride and merge with scripts/merge-results.py.Run dynamics-engine with no arguments for the full help.
| Command | What it does |
|---|---|
show <N-index> | one universe's drift rows, event trajectory and fate |
exact --size N | exact fate of every universe of one size; --samples for N ≥ 4 |
basins --size N | fates over every start state in a box, per universe |
basinmap --size N --index I | which attractor each start in a box reaches |
basinscan --size N | basin maps and pattern features of every canonical universe |
stable <N-index> | is every start bounded? an escaping start, or a proof (N ≤ 2) |
stable --size N | the same for every universe of one size (N ≤ 3) |
variants --size N | create/destroy rules with and without clamping at zero, compared |
orbits --size N | symmetry orbit counts (Burnside) |
run --size N | the original 10-step signature histogram (legacy) |
Add --json for machine-readable output and --model clamped for the create/destroy variant
with positivity. dynamics-engine --help lists every option.
run reproduces the project's first TypeScript version. After a fixed number of steps it gives
each channel a symbol and tallies the joined symbols as a signature:
| Symbol | Meaning |
|---|---|
| | the run ended before the step limit |
0 | the final value appeared earlier (bounded or periodic) |
1 | the positive channel never repeated a value |
-1 | the negative channel never repeated a value |
The comparison skips the step immediately before the last one, exactly as the original did, so
old and new histograms can be diffed. Pass --fixed-cycle to compare against every earlier step.
The heuristic misclassifies about 0.2 % of matrices at N = 3, which is why exact exists.
| N | Matrices | Exhaustive on 8 cores |
|---|---|---|
| 2 | 65,536 | instant |
| 3 | 2³⁶ ≈ 6.9·10¹⁰ | about 30 minutes |
| 4 | 2⁶⁴ ≈ 1.8·10¹⁹ | about 16,000 years, so use --samples |
docs/ is the project's landing page, served by GitHub Pages. It animates real
universes in the browser and includes a JavaScript port of the analyser, so visitors can type
any universe index and see its fate.
python3 scripts/build-dynamics.py # results/*.json + scripts/dynamics.template.html → docs/index.html
python3 scripts/serve-docs.py # http://127.0.0.1:8766, caching disabled
src/exact.rs reduced model, event-driven analysis, proofs, symmetry group
src/spiral.rs spiral proofs: one lap run symbolically on a line or plane of returns
src/global.rs stability from every start: escape witnesses, far-field proof for N ≤ 2
src/experiments.rs censuses, basins, basin scans, the clamped variant
src/multiverse.rs exhaustive and sampled runs of the original model
src/universe.rs one universe of the original model and its 10-step classification
src/matrix.rs index ↔ matrix decoding, random matrices
src/parallel.rs fork-join helpers
src/rng.rs SplitMix64
src/main.rs command-line interface
tests/ proof, decoding and regression tests
results/ computed censuses, basin scans and orbit counts
docs/ landing page and theory notes
scripts/ site builders, local server, shard merging