Em desenvolvimento · etapa 1 de 6 concluída

Mais telas. Só viaja o que muda.

Vitral transforma tablets, celulares, notebooks e placas como Raspberry Pi em monitores adicionais para Linux. Em vez de enviar uma foto plana da área de trabalho, envia em camadas.

cargo run -r --bin vitral-bench
Testar a demo
94%
menos dados ao rolar
>99%
menos dados ao mover janelas
60 fps
sustentados em rede local
~3 ms
de ida e volta
0
linhas de código inseguro

Camadas no emissor.
Memória no receptor.

O emissor descreve a tela e o receptor a lembra. Entre os dois só viaja a diferença.

01Demo interativa

Arraste a janela.

Compare quantos dados uma tela plana enviaria e quantos o Vitral envia pela mesma ação.

1920 × 1080 · 60 fps

Arraste a janela com o mouse ou o dedo

Tela plana 0 B por quadro 0 B acumulado
Vitral 0 B por quadro 0 B acumulado
—

O Vitral envia só a nova posição da janela: cerca de 43 bytes por quadro.

Arrastar: estimativa com a compressão medida no benchmark. Rolagem, digitar e vídeo: medidos em 1920×1080.

02Receptores

O que você já tem, como monitor.

Receptor de desktop para Linux, Windows e macOS, pela rede.

03Para desenvolvedores

Uma API pequena. Sem mágica.

O motor recebe o estado de cada superfície e decide o que enviar. O receptor só aplica mensagens. Tudo verificável com um comando.

emissor.rs
// One layer per surface. Only changes leave the machine.
let mut engine = Engine::new(EngineConfig::default());
engine.add_output(0, 1920, 1080, 60_000)?;
engine.create_layer(WINDOW, 0, 864, 648)?;

// Every frame: report state, the engine diffs it.
engine.update_layer(WINDOW, rect, &pixels)?;
engine.place_layer(WINDOW, placement)?;
engine.move_cursor(0, cx, cy, true)?;

for msg in engine.commit(0, now_us)? {
    link.send(&msg)?;
}
terminal
$ cargo run --release --bin vitral-bench

scenario      layered KB/f   flat KB/f   saving   verified
idle                   0.0         0.0       0%      61/61
typing                 6.9         6.9       0%      61/61
scrolling             10.4       176.0      94%      61/61
window drag            0.1       213.7     100%      61/61
video                932.2       932.2       0%      61/61

verified: frames reproduced pixel for pixel.
04Como funciona

Descreva cada tela como camadas e envie só o que muda.

  1. 01

    Camadas

    O emissor descreve cada tela como uma pilha de camadas: fundo, janelas, vídeo e cursor.

  2. 02

    Cache

    O receptor guarda cada camada. O que ele já tem nunca viaja de novo.

  3. 03

    Só mudanças

    Envia-se apenas a área exata que mudou, comprimida sem perdas. Mover e rolar custam bytes.

  4. 04

    Quadros atômicos

    A imagem só é montada quando o quadro é confirmado, nunca pela metade. O cursor sempre vai primeiro.

05Roteiro

Seis etapas, cada uma medida.

  1. 01 Concluída

    Núcleo do protocolo

    Especificação v0, motor, receptor, benchmark e testes.

  2. 02 Próxima

    Aplicações reais

    Compositor Wayland aninhado: cada janela real é uma camada.

  3. 03 Planejada

    Receptor Android

    App com composição por hardware, USB, toque e caneta.

  4. 04 Planejada

    Placas por USB

    Receptor para Raspberry Pi com saída direta em HDMI.

  5. 05 Planejada

    Driver do Linux

    As telas do Vitral aparecem como monitores reais.

  6. 06 Planejada

    Camadas de vídeo

    Codificação por hardware e vídeo original sem recompressão.

06Código aberto

Aberto por design.

O Vitral usa uma licença diferente para cada parte, de acordo com sua função.

ComponenteLicençaPara quê
Especificação e documentaçãoCC-BY-4.0Qualquer pessoa pode implementar o protocolo.
Bibliotecas do protocolo e do receptorMIT ou Apache-2.0Outros projetos e dispositivos podem integrá-las livremente.
Motor e aplicaçõesGPL-3.0Melhorias nas aplicações continuam abertas.
Driver do kernelGPL-2.0Requisito para fazer parte do Linux.

Licenças comerciais disponíveis para fabricantes e empresas.

Design independente: nenhuma parte vem de drivers, firmware ou documentação proprietária.

07Por quê

Telas extras merecem algo melhor.

Por anos, adicionar um monitor USB no Linux dependeu de software fechado que quebra a cada atualização. O Vitral parte de outra ideia: um protocolo aberto, documentado e medido, que qualquer pessoa pode implementar nos dispositivos que já tem. Sem caixas-pretas. Sem depender de ninguém.

08Perguntas

Perguntas frequentes.

Já posso usar meu tablet como monitor?

Ainda não. O núcleo do protocolo está pronto e medido; o app para Android chega na etapa 3.

Preciso de placa de vídeo?

Não. O Vitral funciona só com o processador e usará a GPU quando houver uma.

Funciona no Windows ou macOS?

O receptor de desktop já roda nos três sistemas. O emissor começa no Linux.

É gratuito?

Sim. O Vitral é código aberto. Empresas que precisarem podem obter licenças comerciais.

09Contato

Vamos construir mais telas.

Colaborações, fabricantes, licenças ou simples curiosidade.