Omnigraph
그래프 엔진으로 컨텍스트를 조립하고, 객체 저장소 기반에서 에이전트가 코드처럼 그래프 데이터를 분기·타입·검토·병합·감사·거버넌스합니다
오픈형이며 인용 가능한 라이브 엔터테인먼트 기술 색인
An open, citable index of live entertainment technology: 556 protocols, standards, software and hardware entries with a source on every fact, plus 40 animated explainers from signal to sensation. Free
데이터JavaScript · HTMLGitHub @deliseph온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기The open index of live entertainment technology: protocols, standards, software, hardware, and a bilingual glossary, with a citation on every fact.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗The open index of live entertainment technology.
The protocols, standards, software, hardware and vocabulary that live shows actually run on, in one machine-readable place, with a citation on every fact.
Live at showstack-inky.vercel.app — one app serving the searchable index, the field tools, the interop checker, the comparisons, the port index and the free JSON API.
Open craft discovery index — not a storefront. Citation: Migu Mianizt Leung · essays on Medium
Every technical director, systems integrator and production electrician has answered the same questions a hundred times:
The answers exist. They are scattered across PDFs behind paywalls, vendor manuals, forum threads from 2011, and the heads of people who are currently in a truck. None of it is machine-readable, so no tool can use it.
showstack is the attempt to put it in one place, with a source on every claim, under a licence that lets anyone build on it.
| Collection | What it holds |
|---|---|
data/protocols/ | Wire protocols and transports. Ports, multicast ranges, addressing models, open source implementations, and the gotchas that bite at 2am. |
data/software/ | Control, playback and design software, and crucially which protocols each one speaks, in which direction. |
data/hardware/ | Consoles, media servers, gateways, switches, tracking systems, and what they speak. |
data/standards/ | ANSI E1.x, SMPTE, AES, IEC. Designation, scope, status, and whether you can read it for free. |
data/terms/ | Bilingual EN / 繁中 vocabulary, with the regional variants and false friends that cause real confusion on headset. |
The interop matrix ("what can receive PSN?") is computed, not stored. You write speaks once on a product and the reverse index falls out.
Two things fall out of that matrix for free:
And for load-in itself, three pages that assume you are standing up:
Every protocol entry also names its flow — control, media, clock or management — which is what it behaves like on a wire rather than what it is for. The two come apart more often than you would think, and where they do, the flow is the more useful of the two.
Free JSON API. No key, no rate limit, no tracking.
GET /api/v1/protocols.json
GET /api/v1/software.json
GET /api/v1/hardware.json
GET /api/v1/standards.json
GET /api/v1/terms.json
GET /api/v1/gaps.json # everything we know is missing
GET /api/v1/index.json # counts and endpoints
JavaScript
npm install showstack
import { protocols, whoSpeaks, byPort, interop, search } from 'showstack'
byPort(5568) // -> [{ id: 'sacn', ... }, { id: 'acn', ... }]
whoSpeaks('psn') // -> every product that sends or receives PosiStageNet
whoSpeaks('psn', 'in') // -> only the ones that can receive it
interop('qlab', 'eos-family') // -> the protocols these two share, and which way
search('吊桿') // -> the glossary entry, with the HK/TW variants
protocols.find(p => p.id === 'art-net').gotchas
Ships with TypeScript declarations, generated from the JSON Schemas so they cannot drift from the data:
import type { Protocol, Speaker, Confidence } from 'showstack'
const receivers: Speaker[] = whoSpeaks('art-net', 'in')
const trust: Confidence = receivers[0].confidence // 'verified' | 'reported' | 'unverified'
Python
pip install showstack
from showstack import by_port, who_speaks, search
by_port(6454) # Art-Net
who_speaks("sacn")
search("safety curtain")
Command line
npx showstack port 5568
npx showstack speaks psn
npx showstack term 吊桿
This index is only as good as the people who run shows make it. Every entry credits its contributors by GitHub handle, and that credit is in the data itself, not just the git log.
The fastest path is about five minutes and needs no local setup:
data/<collection>/<id>.yaml.contributed_by.Read CONTRIBUTING.md for the full guide, including what counts as a good source.
An entry with no source is an opinion, not data.
Every factual field must be traceable to something in sources. Prefer the standard itself, the vendor's own documentation, or the project's own repository. If you know something is true from ten years on the floor but cannot cite it, put it in gotchas and mark confidence: reported. That is honest and useful. Asserting a port number you half-remember is neither.
npm install
npm test # validate, build, then the test suite
Individually:
npm run validate # schema, cross-references, duplicate ids, port collisions
npm run build # -> dist/ (JSON API + static site + package bundles)
npm run test:unit # the rules a schema cannot express
npm run types # regenerate index.d.ts from schema/
npm run types:check # fail if the checked-in types are stale
Node 20 or newer. Contributors who only touch data need none of this — CI runs it for you and comments in plain language if something is off.
One app: the Vercel project showstack builds this repo on every push to main and serves everything (site, tools, interop, compare, ports, API) at showstack-inky.vercel.app. The old GitHub Pages URL now redirects there path-for-path rather than serving a second copy.
The JSON Schemas say what shape an entry may take. The test suite says what the project means, which is the part that keeps the index worth trusting:
confidence: verified requires a source marked primary — verified is earned, not typedspeaks declarations in both directionsThat last one is not hypothetical. This project renders YAML written by strangers straight into HTML, so the generator is tested against hostile input on every run.
scripts/pages.mjs generates every static page. scripts/compare.mjs holds the
curated comparison pairs — the pairs are chosen by hand because only a person
knows which comparisons people agonise over, but the content is derived from
the data so it cannot go stale.
showstack is an index, not a course: it says what a thing is and cites a source. Several of the
explainers under /learn/ are the opening paragraph of something that is taught properly elsewhere,
so those pages now carry a quiet Taught in depth in block pointing at where the rest is.
Three cohorts, four courses, and no student who takes all four. Technical Direction takes
Electronics in year one and Computer Science in year two, which is the only real progression among
them. Media Design and Technology takes Computer Systems and neither of the others. Show Networking
is an elective that assumes none of them. So where two courses reach the same topic they reach it
from different positions and ask different questions of it, which is why a TAUGHT_IN row can name
two of them without contradicting itself.
| Course | Who is in it | Stands at |
|---|---|---|
| Electronics for Theatre | Technical Direction, year 1 · core | Below the connector |
| Computer Systems and Networking | Media Design and Technology, year 1 · core | The machine and the network |
| Computer Science for Theatre | Technical Direction, year 2 · core | The instructions, and who is responsible for them |
| Show Networking and Control Systems | Elective · assumes none of the others | The agreements between two devices |
All four check their numbers and their bilingual terms against this index, which is what stops the
same value being taught four slightly different ways. scripts/learn-kit.mjs holds the map from a
learn topic to the course that goes deepest on it; adding a row there is how a new pointer appears.
data/, dist/api/): CC BY 4.0. Use it commercially, build products on it, just credit showstack.schema/, scripts/, packages/, site/): MIT.Small and deliberately boring. See GOVERNANCE.md. Short version: anyone can propose, maintainers merge, disputes are settled by citing the primary source rather than by seniority.