Project Description

This project is about creating a GUI that visualizes algorithms. At first, it will focus on search and sort algorithms.

Goal for this Hackweek

Have a GUI that shows a bubble-sort.

Results

I wrote a small program that shows quick sort and bubble sort. Each number is represented by a bar with a length that's proportional to its value and a color based on its initial position in the array. The coloring helps tracking individual numbers.

After recording the demo you can see on the repository page, I refactored the code to allow multiple arrays at the same time. That allows for direct comparisons, but needs to be improved to control them at once.

Repo: https://git.sr.ht/~agraul/visu (mirrored to https://github.com/agraul/visu)

Resources

  • https://lib.rs/crates/egui
  • https://github.com/emilk/eframe_template/

Looking for hackers with the skills:

rust algorithms gui

This project is part of:

Hack Week 22

Activity

  • about 2 years ago: agraul added keyword "algorithms" to this project.
  • about 2 years ago: agraul added keyword "gui" to this project.
  • about 2 years ago: agraul added keyword "rust" to this project.
  • about 2 years ago: hennevogel liked this project.
  • about 2 years ago: agraul started this project.
  • about 2 years ago: agraul originated this project.

  • Comments

    Be the first to comment!

    Similar Projects

    Implement a CLI tool for Trento - trentoctl by nkopliku

    Description

    Implement a trentoctl CLI for interacting with a trento installation

    Goals

    • learn rust
    • implement an initial trentoctl tool to enhance trento automation
    • have fun

    Resources

    trento rust. TUIs listed on this other hackweek project Hack on rich terminal user interfaces


    SMB3 Server written entirely in Rust by dmulder

    Description

    Given the number of bugs frequently discovered in the Samba code caused by memory issues, it makes sense to re-write the smbd service purely in Rust code. Meanwhile, it would be wise to abandon backwards compatibility here with insecure protocol versions, and simply implement the SMB3 spec.

    Goals

    Get a simple server up and running and get it merged into upstream Samba (which now has Rust build support).

    Resources


    Hacking on sched_ext by flonnegren

    Description

    Sched_ext upstream has some interesting issues open for grabs:

    Goals

    Send patches to sched_ext upstream

    Also set up perfetto to trace some of the example schedulers.

    Resources

    https://github.com/sched-ext/scx


    Kanidm: A safe and modern IDM system by firstyear

    Kanidm is an IDM system written in Rust for modern systems authentication. The github repo has a detailed "getting started" on the readme.

    Kanidm Github

    In addition Kanidm has spawn a number of adjacent projects in the Rust ecosystem such as LDAP, Kerberos, Webauthn, and cryptography libraries.

    In this hack week, we'll be working on Quokca, a certificate authority that supports PKCS11/TPM storage of keys, issuance of PIV certificates, and ACME without the feature gatekeeping implemented by other CA's like smallstep.

    For anyone who wants to participate in Kanidm, we have documentation and developer guides which can help.

    I'm happy to help and share more, so please get in touch!


    Better diff'ing experience by MSirringhaus

    Description

    For diff-ing directories, I usually like to use meld, but it struggles a lot with large trees. Experiment with writing a TUI meld-clone for diffing directories and files

    Goals

    Get first prototype going of a TUI that can show

    • diffs of text-files
    • diffs of directories.

    Stretch goals

    • Themes
    • Filters (no whitespace, etc.)
    • Live config changes (Show/hide line numbers, etc.)


    Finish gfxprim application multiplexor (window manager) by metan

    Project Description

    I've implemented drivers for a few e-ink displays during the last hackweek and made sure that gfxprim widgets run nicely on e-ink as well. The missing piece to have a portable e-ink computer/reader/music player/... is a application that can switch between currently running applications and that can start new applications as well. Half of the solution is ready, there is a proxy gfxprim backend where applications render into a piece of a shared memory and input events (e.g. keyboard, mouse) can be multiplexed. What is missing is an interface (possibly touchscreen friendly as well) to make it user friendly.

    Goal for this Hackweek

    Make nekowm usable "window manager".

    Resources