9 dépôts
Mechanisms that calculate differences between data states to perform granular user interface updates.
Distinct from State Update Schedulers: None of the candidates relate to the algorithmic calculation of minimal data changes for UI animations; they focus on scheduling, debouncing, or web-specific handlers.
Explore 9 awesome GitHub repositories matching user interface & experience · Diffing-Based State Updates. Refine with filters or upvote what's useful.
IGListKit is a data-driven list manager and framework for iOS that decouples data models from cell logic. It serves as a wrapper for collection views, using a system of section controllers to map specific data model types to independent objects that manage the logic and sizing for list sections. The project features a diffing algorithm library that calculates the minimal set of changes between two data collections. By using unique identifiers and equality tracking, it identifies inserts, deletes, and moves to trigger animated updates instead of full interface reloads. The framework covers a
Calculates the minimal set of changes between two data collections to trigger animated updates instead of full reloads.
This repository is a collection of reference implementations and sample projects demonstrating data-oriented design using the Unity Entities package. It provides a suite of examples for implementing an entity component system that separates game data into components and logic into systems. The collection includes specialized demonstrations for rendering large volumes of entities via graphics pipelines, implementing high-performance collision and rigid body dynamics through data-oriented physics, and managing multiplayer state synchronization using the network framework for entities. It also p
Coordinates network communication and state updates for multiplayer environments using an entity-based system.
Citybound is an open-source multiplayer city simulation game and collaborative urban planner. It provides a shared digital space where multiple users co-manage city growth, design infrastructure layouts, and develop urban environments in real time. The project functions as a collaborative city builder, allowing players to plan and evolve a virtual city together. Changes made to the urban environment are reflected immediately for all connected participants within the shared simulation. The system utilizes an entity-component simulation to manage urban behavior and a shared-world coordinate sy
Reduces network bandwidth by transmitting only specific changes in the simulation state.
term.everything is a terminal-based graphical compositor and renderer that converts framebuffers into ANSI escape sequences to display GUI applications within a terminal emulator. It functions as a remote GUI streamer and framebuffer-to-ANSI converter, allowing for the visualization of headless systems and the execution of graphical software over SSH connections. The project includes a specialized mouse input handler that utilizes SGR 1006 reporting to capture movements and clicks, enabling user interaction with rendered graphical interfaces. It emulates a compositor to coordinate window beha
Reduces CPU and bandwidth usage by updating the terminal display only when framebuffer changes are detected.
Litho is an Android declarative UI framework and component library used to build user interfaces through a declarative API and immutable state. It functions as an asynchronous layout engine that maps components to a structured view hierarchy to automate view updates. The framework optimizes rendering performance by computing element positions on background threads to prevent blocking the main UI thread. It further improves efficiency by flattening nested view hierarchies and caching layout results. The system includes capabilities for state reconciliation, component recycling, and the render
Calculates differences between interface versions to perform granular updates, increasing overall rendering speed.
KasmVNC est un serveur VNC basé sur le web et une solution d'accès à distance qui fournit une passerelle sécurisée pour accéder à des environnements de bureau distants via un navigateur web. Il implémente le protocole Remote Frame Buffer pour transmettre les données de pixels et sert de passerelle d'accès à distance sécurisée avec audit utilisateur et contrôles d'entrée intégrés. Le projet se distingue par une accélération matérielle étendue, utilisant la capture d'images accélérée par GPU et l'accélération graphique pour prendre en charge les tâches gourmandes en graphismes avec une faible latence. Il emploie un pipeline de compression multi-thread et une négociation d'encodage dynamique pour adapter les capacités du serveur aux codecs supportés par le navigateur. Le système couvre un large éventail de capacités, incluant la gestion de sessions multi-utilisateurs, la surveillance de sessions à distance et l'ajustement adaptatif de la qualité pour optimiser la bande passante. La sécurité est gérée via une gestion granulaire des permissions utilisateur, des contrôles d'accès au presse-papiers et une limitation du débit des entrées clavier. Le comportement du serveur peut être personnalisé via des paramètres opérationnels globaux et par utilisateur définis dans des fichiers de configuration.
Minimizes bandwidth by sending only the modified portions of the screen framebuffer to the client.
tcell is a Go terminal user interface library and framework for building cell-based applications. It functions as a terminal emulator backend and input processor, utilizing a change-based diffing engine to manage screen state and efficiently render updates. The project is distinguished by its pluggable backend abstraction, which allows terminal interfaces to be rendered across physical terminals or compiled into WebAssembly for web browser display. It provides a virtual screen simulation to enable programmatic event injection and output inspection for automated application testing. Its capab
Calculates differences between current and previous screen states to perform granular terminal updates.
Firepad is a Firebase collaborative text editor and rich text editor component. It functions as a real-time collaborative framework and operational transformation engine designed to synchronize document editing across multiple concurrent users. The project provides tools for shared document synchronization and collaborative presence tracking, allowing users to see live cursor positions and identifiers. It supports rich text authoring integration for both formatted content and code editing. The system manages document consistency through shared document synchronization and provides capabiliti
Transmits only modified state changes over the network to reduce bandwidth during document synchronization.
Space Station 14 is a C# multiplayer game and roleplay simulation framework. It is built upon an Entity-Component-System (ECS) game engine that separates logic into systems and data into components to manage complex entity interactions. The project functions as a grid-based physics simulator with a YAML data-driven prototype system for defining game objects. The project features a specialized 2D sprite rendering engine that maps server-side appearance data to client-side shaders. It implements a networking model with client-side prediction and dirty-flagged state synchronization to reduce inp
Reduces network bandwidth by transmitting only modified fields of entity components between server and client.