feito para cos 242 · teoria dos grafos · ufrj 2026/2

graphman.

Uma biblioteca de grafos em Rust: um trait Graph, três formas de guardar um grafo, quatro formas de achar o diâmetro, rodando no seu navegador.

// descubra mais

Um trait, três representações, quatro diâmetros.

O GraphMan lê o formato de lista de arestas da disciplina para uma lista de adjacência, uma matriz de bits ou CSR, e roda BFS, DFS, distâncias, componentes e o diâmetro em qualquer uma delas por um único trait Graph. Mede a própria memória e o próprio tempo nos seis grafos da disciplina e, compilado para WebAssembly, é o motor do observatório.

arestas no maior grafo
46.5Mlido em 2.07 s
representações
3um trait Graph
métodos de diâmetro
4todos canceláveis
o grafo
lista de adjacência
  1. 1│23
  2. 2│134
  3. 3│125
  4. 4│25
  5. 5│34
matriz de bits
1234512345
CSR
offsets02581012targets231341252534

Sem servidor, sem dados pré-calculados: a própria biblioteca no seu navegador

O observatório começa vazio. Carregue qualquer grafo no formato da disciplina e tudo o que você vê é calculado na hora.

  1. Rust, compilado para WebAssembly

    O mesmo crate que roda os estudos de caso (crates/graphman) é exposto com wasm-bindgen. Leitura, BFS, DFS, distâncias, componentes e o diâmetro rodam na sua aba, em uma thread, a partir do arquivo que você solta.

  2. WebGPU via vgpu

    Posições, arestas e a árvore de busca vivem em buffers da GPU. Compute shaders rodam a simulação de forças e o morph entre quatro layouts (forças, radial, camadas, grau); cada vértice e aresta é desenhado com a cor do nível em que a busca o alcançou.