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 - 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.
Verschieben Sie das Fenster.
Vergleichen Sie, wie viele Daten ein flacher Bildschirm senden würde und wie viele Vitral für dieselbe Aktion sendet.
Ziehen Sie das Fenster mit der Maus oder dem Finger
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.
Was Sie schon besitzen, als Monitor.
Desktop-Empfänger für Linux, Windows und macOS, über das Netzwerk.
Empfänger-App über USB, mit Touch und Stift.
Normale HDMI-Monitore, per USB angeschlossen.
Kernel-Treiber: Linux sieht einen neuen Monitor, ohne Bildschirmaufnahme.
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.
// 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)?;
} $ 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. Beschreiben Sie jeden Bildschirm als Ebenen und senden Sie nur, was sich ändert.
- 01
Ebenen
Der Sender beschreibt jeden Bildschirm als Stapel von Ebenen: Hintergrund, Fenster, Video und Zeiger.
- 02
Cache
Der Empfänger speichert jede Ebene. Was er schon hat, wird nie wieder übertragen.
- 03
Nur Änderungen
Gesendet wird genau der geänderte Bereich, verlustfrei komprimiert. Verschieben und Scrollen kosten Bytes.
- 04
Atomare Bilder
Das Bild wird erst beim Bestätigen zusammengesetzt, nie halb fertig. Der Zeiger hat immer Vorrang.
Sechs Phasen, jede gemessen.
- 01 Abgeschlossen
Protokollkern
Spezifikation v0, Engine, Empfänger, Benchmark und Tests.
- 02 Als Nächstes
Echte Anwendungen
Verschachtelter Wayland-Compositor: jedes echte Fenster ist eine Ebene.
- 03 Geplant
Android-Empfänger
App mit Hardware-Komposition, USB, Touch und Stift.
- 04 Geplant
Boards über USB
Raspberry-Pi-Empfänger mit direkter HDMI-Ausgabe.
- 05 Geplant
Linux-Treiber
Vitral-Bildschirme erscheinen als echte Monitore.
- 06 Geplant
Video-Ebenen
Hardware-Kodierung und Originalvideo ohne Neukomprimierung.
Offen von Grund auf.
Vitral verwendet für jeden Teil eine eigene Lizenz, passend zu seiner Rolle.
| Komponente | Lizenz | Warum |
|---|---|---|
| Spezifikation und Dokumentation | CC-BY-4.0 | Jeder kann das Protokoll implementieren. |
| Protokoll- und Empfängerbibliotheken | MIT oder Apache-2.0 | Andere Projekte und Geräte können sie frei einbinden. |
| Engine und Anwendungen | GPL-3.0 | Verbesserungen an den Anwendungen bleiben offen. |
| Kernel-Treiber | GPL-2.0 | Voraussetzung 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.
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.
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.
Lassen Sie uns mehr Bildschirme bauen.
Zusammenarbeit, Hersteller, Lizenzen oder einfach Neugier.
Projekt unterstützen
Vitral ist kostenlos und offen. Ihre Unterstützung finanziert Testhardware und Entwicklungszeit.