Skip to content

olekolek1000/multipixel

Repository files navigation

Splash

Main repository located at GitLab website

MultiPixel

An app for multiplayer drawing on an infinite canvas.

Server written in Rust (formerly in C++, see "cpp" tag), client written in Typescript.

Preview

Menu screen

Features

  • Infinite canvas
  • Multiple rooms support
  • Chat
  • Undo support
  • Brush smoothing
  • Lua Plugin support (cpp branch only)

Tools:

  • Brush
  • Bucket fill
  • Gradient editor

Technical features (Server)

  • Fully asynchronous multithreading
  • Up to 65535 clients supported
  • Up to 18446744073709551616 pixels ((2^32)*(2^32)) in one room. Good luck finding real boundary limits.
  • LZ4 chunk compression
  • WebSockets
  • SQLite3 room storage
  • Written in Rust 🦀

Technical features (Client)

  • Written in Typescript
  • Powered by WebGL 2
  • LZ4 chunk decompression
  • WebSockets

Installation

Launching server

Requirements:

  • Rust compiler + functional cargo env

Build commands:

mkdir rooms
cargo run

Preparing client

Requirements:

  • npm with required packages

Build commands:

# Change directory
cd web

# Install dependencies
npm install

# Start web application
npx vite serve

Changing server address

  1. export CONNECT_URL="ws://1.2.3.4:59900"
  2. Build/serve web app again (commands above)

Pull requests are welcome.

About

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •