In Entwicklung · Phase 1 von 6 abgeschlossen

Mehr Bildschirme. Nur Änderungen werden übertragen.

Vitral macht Tablets, Smartphones, Laptops und Boards wie den Raspberry Pi zu zusätzlichen Monitoren für Linux. Statt ein flaches Bild des Desktops zu senden, überträgt es ihn in Ebenen.

cargo run -r --bin vitral-bench
Demo ausprobieren
94 %
weniger Daten beim Scrollen
>99 %
weniger Daten beim Verschieben von Fenstern
60 fps
dauerhaft im lokalen Netz
~3 ms
Umlaufzeit
0
Zeilen unsicherer Code

Ebenen beim Sender.
Gedächtnis beim Empfänger.

Der Sender beschreibt den Bildschirm, der Empfänger merkt ihn sich. Zwischen beiden reist nur der Unterschied.

01Interaktive Demo

Verschieben Sie das Fenster.

Vergleichen Sie, wie viele Daten ein flacher Bildschirm senden würde und wie viele Vitral für dieselbe Aktion sendet.

1920 × 1080 · 60 fps

Ziehen Sie das Fenster mit der Maus oder dem Finger

Flacher Bildschirm 0 B pro Bild 0 B gesamt
Vitral 0 B pro Bild 0 B gesamt
—

Vitral sendet nur die neue Position des Fensters: etwa 43 Bytes pro Bild.

Ziehen: Schätzung anhand der im Benchmark gemessenen Kompression. Scrollen, Tippen und Video: gemessen bei 1920×1080.

02Empfänger

Was Sie schon besitzen, als Monitor.

Desktop-Empfänger für Linux, Windows und macOS, über das Netzwerk.

03Für Entwickler

Eine kleine API. Keine Magie.

Die Engine erhält den Zustand jeder Oberfläche und entscheidet, was gesendet wird. Der Empfänger wendet nur Nachrichten an. Alles mit einem Befehl überprüfbar.

sender.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.
04Funktionsweise

Beschreiben Sie jeden Bildschirm als Ebenen und senden Sie nur, was sich ändert.

  1. 01

    Ebenen

    Der Sender beschreibt jeden Bildschirm als Stapel von Ebenen: Hintergrund, Fenster, Video und Zeiger.

  2. 02

    Cache

    Der Empfänger speichert jede Ebene. Was er schon hat, wird nie wieder übertragen.

  3. 03

    Nur Änderungen

    Gesendet wird genau der geänderte Bereich, verlustfrei komprimiert. Verschieben und Scrollen kosten Bytes.

  4. 04

    Atomare Bilder

    Das Bild wird erst beim Bestätigen zusammengesetzt, nie halb fertig. Der Zeiger hat immer Vorrang.

05Roadmap

Sechs Phasen, jede gemessen.

  1. 01 Abgeschlossen

    Protokollkern

    Spezifikation v0, Engine, Empfänger, Benchmark und Tests.

  2. 02 Als Nächstes

    Echte Anwendungen

    Verschachtelter Wayland-Compositor: jedes echte Fenster ist eine Ebene.

  3. 03 Geplant

    Android-Empfänger

    App mit Hardware-Komposition, USB, Touch und Stift.

  4. 04 Geplant

    Boards über USB

    Raspberry-Pi-Empfänger mit direkter HDMI-Ausgabe.

  5. 05 Geplant

    Linux-Treiber

    Vitral-Bildschirme erscheinen als echte Monitore.

  6. 06 Geplant

    Video-Ebenen

    Hardware-Kodierung und Originalvideo ohne Neukomprimierung.

06Open Source

Offen von Grund auf.

Vitral verwendet für jeden Teil eine eigene Lizenz, passend zu seiner Rolle.

KomponenteLizenzWarum
Spezifikation und DokumentationCC-BY-4.0Jeder kann das Protokoll implementieren.
Protokoll- und EmpfängerbibliothekenMIT oder Apache-2.0Andere Projekte und Geräte können sie frei einbinden.
Engine und AnwendungenGPL-3.0Verbesserungen an den Anwendungen bleiben offen.
Kernel-TreiberGPL-2.0Voraussetzung für die Aufnahme in Linux.

Kommerzielle Lizenzen sind für Hersteller und Unternehmen verfügbar.

Unabhängiges Design: Kein Teil stammt aus proprietären Treibern, Firmware oder Dokumentation.

07Warum

Zusätzliche Bildschirme verdienen mehr.

Jahrelang hing ein USB-Monitor unter Linux von geschlossener Software ab, die bei jedem Update bricht. Vitral geht von einer anderen Idee aus: ein offenes, dokumentiertes und gemessenes Protokoll, das jeder auf den Geräten umsetzen kann, die er bereits besitzt. Keine Blackbox. Keine Abhängigkeit.

08Fragen

Häufige Fragen.

Kann ich mein Tablet schon als Monitor nutzen?

Noch nicht. Der Protokollkern ist fertig und gemessen; die Android-App folgt in Phase 3.

Brauche ich eine Grafikkarte?

Nein. Vitral funktioniert allein mit dem Prozessor und nutzt die GPU, wenn eine vorhanden ist.

Läuft es unter Windows oder macOS?

Der Desktop-Empfänger läuft bereits auf allen drei Systemen. Der Sender beginnt mit Linux.

Ist es kostenlos?

Ja. Vitral ist Open Source. Unternehmen können bei Bedarf kommerzielle Lizenzen erhalten.

09Kontakt

Lassen Sie uns mehr Bildschirme bauen.

Zusammenarbeit, Hersteller, Lizenzen oder einfach Neugier.