cyb/reference/particle.md

particle handling

how cyb resolves, fetches, and renders files from the cybergraph

resolution

a particle is a content-addressed hash (hemera digest). when cyb/brain or cyb/oracle encounters a particle:

  1. check local cache (SQLite)
  2. check local radio blob store
  3. fetch from P2P network via radio/blob
  4. verify hash matches content

no HTTP, no URLs, no DNS. identity IS the address

content type detection

every file carries raw bytes. cyb infers the content type from magic bytes and structure:

detected type render pipeline GPU primitive
text (markdown) parse → glyph layout → GPU atlas cyb/wgpu fragment shader
pixels (png, webp, jpg) decode → texture upload cyb/wgpu sampler
video (mp4, webm) hardware decode → frame texture cyb/wgpu temporal sampler
sound (wav, ogg, mp3) decode → audio pipeline + waveform compute cyb/wgpu compute shader
formula (latex) parse → glyph + Vello paths cyb/wgpu compute fill
vector (svg) parse → Vello tiling cyb/wgpu compute fill
table (csv) parse → virtualized grid cyb/wgpu text cells
struct (json, toml) parse → collapsible tree cyb/wgpu text render
component (wasm) instantiate module → own render pass cyb/wgpu composite

if content type is ambiguous, cyb/onnx classification model resolves it

render pipeline

all types flow through one pipeline:

raw bytes
  → content type detection
  → type-specific parser
  → layout (stream position, size)
  → GPU upload (texture / glyph atlas / path tiles)
  → fragment shader composite
  → screen

each file renders independently. no cascading styles, no reflow between files. a cyb/brain page is a stream of files, each self-contained

caching

  • parsed content cached in SQLite with the particle as key
  • GPU resources (textures, glyph atlases) cached per session
  • radio/bao verified streaming for large files (progressive render while downloading)

in cyb/brain

cyb/brain displays files through tabs:

  • graph: 3d spatial render
  • list: table with analytics
  • heap: 2d knowledge graph
  • stack: vertical scroll (default)
  • hike: single file focus

each tab is a different layout mode over the same file stream

see file and particle for the protocol concepts. see cyb/features for the PureRender engine. see cyb/wgpu for GPU abstraction

Homonyms

cyber/particle
the identity of a file: the hemera hash of its data, 32 bytes, always — in bbg's construction, hemera over the lens commitment to the data, domain-separated: $\text{hemera}(\text{Lens.commit}(data) \,\|\, \text{PARTICLE})$. what a cyberlink holds. every node of the cybergraph is a particle — a…
cyb/brain/particle
cybergraph/reference/particle
cybics/crystal/particle
the identity of a file: the Hemera hash of its data, 32 bytes, always. what a cyberlink holds — permanent and registrationless. see cybergraph/reference/particle.
soft3/radio/particle
particle
cyb/legacy/brain/particle
full screen particle view in all its glory necessary information type pv creator created size xp
soft3/cybergraph/specs/particle
particle a content-addressed node. identity = Hemera hash of content. 32 raw bytes, no headers, no version prefix. one hash function, one address space, permanent the address is the identity. `Hemera(content)` — that is the particle. no registration, no authority, no namespace collision. two agents…

Graph