Generic and extensible egui widgets to create analog synthesizer-like UI with data-oriented API

Overview

egui_cable

GitHub MIT/Apache 2.0 Crates.io docs.rs

A generic and extensible data-oriented widget for connecting ports by cables.

I create this for the visual programming editor of Hihaheho/Desk.

It's good for:

  • analog synthesizer-like UI
  • node-based UI
  • anything you can imagine

Features

  • connect ports by data
  • dynamic connect and disconnect
  • lock connection
  • custom plug widget
  • custom port widget
  • custom cable widget
  • multiple connections on a single port.
  • on-connect event
  • on-disconnect event
  • on-hover event
  • garbage collection
  • multi-touch support (help me)

Examples

Click the images to see the source code.

Simple example

Connect example

You might also like...
An attempt to create an easily customizable MMORPG game engine. Sky not included.

skyless Proof of concept of an easily customizable MMORPG game engine. Getting started Copy environment variables cp .env.example .env Start the engi

Bevy Simple Portals is a Bevy game engine plugin aimed to create portals.
Bevy Simple Portals is a Bevy game engine plugin aimed to create portals.

Portals for Bevy Bevy Simple Portals is a Bevy game engine plugin aimed to create portals. Those portals are (for now) purely visual and can be used t

💫 create beautiful code snippets on ray.so
💫 create beautiful code snippets on ray.so

Rayso✨ [ Generate beautiful screenshot snippets from terminal using ray.so ] Installation 🍀 Source 🍙 $ git clone --depth=1 https://github.com/pwnwri

Using the powers of Rust, Go and Dragonfly to make a vanilla-like world generation.
Using the powers of Rust, Go and Dragonfly to make a vanilla-like world generation.

df-rs-gen — Dragonfly Rust Generator Using the powers of Rust, Go and Dragonfly to make a vanilla-like world generation. How to use Clone the repo. gi

Sandbox is a pixel physics simulator inspired by other such like Sandspiel and Noita
Sandbox is a pixel physics simulator inspired by other such like Sandspiel and Noita

Sandbox Sandbox is a pixel physics simulator inspired by other such like Sandspiel and Noita. It's also a precursor for an ongoing game project. Sandb

Endless Trial is a simple 2D bullet-hell-like game made in Rust with Tetra.

Endless Trial Endless Trial is a simple 2D bullet-hell-like game made in Rust with Tetra. To-do Sound Credits This project uses several free sprites:

A SameGame/TileFall-like game written in Rust/FLTK.
A SameGame/TileFall-like game written in Rust/FLTK.

Gravitate A SameGame/TileFall-like game written in Rust/FLTK. Tested on Linux and Windows. gravitate.exe is a precompiled Windows binary that should r

Like minecraft, but crispier!

crispycraft Like minecraft, but crispier! Links Library documentation WebGPU: https://docs.rs/wgpu/0.12.0/wgpu/ building_blocks: https://docs.rs/build

Persist game settings like music volume or graphic settings in a nice toml file in the right location.

Bevy Settings The goal of this project is to store settings in a resource throughout game launches. Currently this crate supports Linux, Mac and Windo

Comments
  • Possible features

    Possible features

    Feel free to comment feature requests. I’ll add it to the following list if I think it’s needed.

    • [x] connect ports by supplying port ids
    • [x] connect between two any ports by drag.
    • [x] disconnect cable by mouse
    • [ ] #4
    • [x] lock connection
    • [x] custom port widget
    • [x] custom cable widget
    • [x] custom cable data
    • [x] multiple connections on a single port.
    • [x] on-connect event
    • [x] #2
    • [x] on-hover event
    • [ ] #3
    • [x] garbage collection
    opened by ryo33 0
Owner
Ryo Hirayama
Coding like playing
Ryo Hirayama
API tool,but egui style and rusty

WEAVER About Weaver is a simple,easy-to-use and cross-platform API tool.Inspired by hoppscotch . It uses the Rust egui GUI library. Features Get,Post

will 14 Dec 11, 2022
Generic cellular automaton plugin for bevy.

Bevy Cellular Automaton bevy_life is a generic plugin for cellular automaton. From the classic 2D Conway's game of life to WireWorld and 3D rules, the

Félix Lescaudey de Maneville 34 Nov 23, 2022
A small, portable and extensible game framework written in Rust.

What is This? Crayon is a small, portable and extensible game framework, which loosely inspired by some amazing blogs on bitsquid, molecular and flooo

JK Mao 174 Oct 22, 2022
A plugin for Egui integration into Bevy

bevy_egui This crate provides a Egui integration for the Bevy game engine. Features: Desktop and web (bevy_webgl2) platforms support Clipboard (web su

Vladyslav Batyrenko 453 Jan 3, 2023
Show puffin profiler flamegraph in-game using egui

Show puffin profiler flamegraph in-game using egui puffin is an instrumentation profiler where you opt-in to profile parts of your code: fn my_functio

Emil Ernerfeldt 44 Jun 3, 2022
An egui backend for godot-rust

Godot Egui An egui backend for godot-rust. Rationale Godot has a perfectly valid GUI system, so why egui? Here are my personal reasons: Simplicity: No

null 109 Jan 4, 2023
3d transformation gizmo built on top of the egui library.

egui-gizmo 3d transformation gizmo built on top of the egui library. Try it out in a web demo Usage let gizmo = Gizmo::new("My gizmo") .view_matri

Urho Laukkarinen 69 Dec 10, 2022
A Bevy plugin to easily create and manage windows that remember where they were.

bevy-persistent-windows A Bevy plugin to easily create and manage windows that remember where they were. Background When you're developing a game, thu

Umut 4 Aug 12, 2023
Rust library to create a Good Game Easily

ggez What is this? ggez is a Rust library to create a Good Game Easily. The current version is 0.6.0-rc0. This is a RELEASE CANDIDATE version, which m

null 3.6k Jan 7, 2023
Combine simple building blocks to create smooth cameras: first-person, chase, orbit, look-at, you name it!

?? dolly Combine simple building blocks to create smooth cameras: first-person, chase, orbit, look-at, you name it! Camera rigs made with dolly are en

Tomasz Stachowiak 284 Dec 26, 2022