diff --git a/README.md b/README.md index 2fea18d..1e1fda2 100644 --- a/README.md +++ b/README.md @@ -3,131 +3,35 @@ A collection of random ideas ## Programming Projects - [Mathematical model for Factorio](./projects/mathematical-model-for-factorio.md) -- [PID in Rust](#pid-in-rust) -- [Image Processing in Rust](#image-processing-in-rust) -- [Custom Visualisations for Firefly III](#custom-visualisations-for-firefly-iii) -- [Sans-IO Rust implementation of minecraft protocol](#sans-io-rust-implementation-of-minecraft-protocol) -- [Custom Minecraft Proxy](#custom-minecraft-proxy) -- [Signal Processing](#signal-processing) -- [(Fast) Fourier Transform](#(fast)-fourier-transform) -- [Crystalline memory reclaimation](#crystalline-memory-reclaimation) -- [Wait-Free memory allocator](#wait-free-memory-allocator) -- [2D Fluid Sim](#2d-fluid-sim) -- [Graph Layout Engine](#graph-layout-engine) -- [Calorie Tracker](#calorie-tracker) -- [Visualise minecraft items and their relations](#visualise-minecraft-items-and-their-relations) -- [Nomad Gitlab Runner](#nomad-gitlab-runner) -- [EPaxos implementation](#epaxos-implementation) -- [Postgres protocol implementation](#postgres-protocol-implementation) -- [Rust crate to receive stream from OBS](#rust-crate-to-receive-stream-from-obs) -- [Sensor Fusion](#sensor-fusion) -- [E-Graph implementation](#e-graph-implementation) -- [Memory SSA](#memory-ssa) -- [Vault secret engine for ceph s3](#vault-secret-engine-for-ceph-s3) -- [Vault secret engine for ceph users](#vault-secret-engine-for-ceph-users) -- [Vault secret engine for gitlab tokens](#vault-secret-engine-for-gitlab-tokens) -- [Wordle Solver](#wordle-solver) -- [Rust crate for state machines](#rust-crate-for-state-machines) -- [Implement new werewolf bot](#implement-new-werewolf-bot) -- [Parse CS Demos](#parse-cs-demos) -- [Implement jiffy Queue](#implement-jiffy-queue) -- [Implement Combine-and-Exchange locks](#implement-combine-and-exchange-locks) -- [Custom Rust async runtime](#custom-rust-async-runtime) -- [Custom drone software](#custom-drone-software) -- [Camera tracker](#camera-tracker) - -## Projects -### PID in Rust -### Image Processing in Rust -### Custom Visualisations for Firefly III -I am already tracking basically all of my finances in my personal Firefly III instance, but I feel like there could be more interesting insights hidden in the data that is not being shown by default. - -### Sans-IO Rust implementation of minecraft protocol -### Custom Minecraft Proxy -This would require the [protocol implementation](#sans-io-rust-implementation-of-minecraft-protocol) to be done first or at least developed alongside. - -### Signal Processing -### (Fast) Fourier Transform -### Crystalline memory reclaimation -A lock-free/wait-free (depending on configuration used) memory reclaimation scheme for concurrent data structures. -I want to implement this as a Rust crate, with a safe interface that should basically make it impossible to misuse (as little unsafe as possible in public API) - -### Wait-Free memory allocator -### 2D Fluid Sim -A simple 2D fluid simulation that would allow me to get a basic analysis of a cross-section of a wing or similar structures. - -#### References -- [PDF by 10 Minute Physics](https://matthias-research.github.io/pages/tenMinutePhysics/17-fluidSim.pdf) - -#### implementations -- [Rust Fluidsim](https://gitea.lol3r.com/leon/fluidsim) - -### Graph Layout Engine - -### Calorie Tracker -A simple calorie tracker - -#### implementations -- [CalFlow](https://gitea.lol3r.com/leon/calflow) - -### Visualise minecraft items and their relations -Ingest the information about minecraft items and entities and their relations somehow and then generate different (interactive) graphs that show the relations between items. -Possible relations: -- Used in crafting recipe -- Dropped by - -### Nomad Gitlab Runner -A Gitlab Runner that will spawn the given jobs on a Nomad cluster for easier scaling - -### EPaxos implementation -### Postgres protocol implementation - -### Rust crate to receive stream from OBS -### Sensor Fusion -Things like Kalman-Filters etc. - -### E-Graph implementation -### Memory SSA -### Vault secret engine for ceph s3 -A custom vault secret engine to dynamically generate and handle s3 credentials for ceph. - -### Vault secret engine for ceph users -### Vault secret engine for gitlab tokens -A custom vault secret engine to dynamically generate and handle gitlab access tokens with different scopes. - -### Wordle Solver -A simple program to help in solving wordle. - -### Rust crate for state machines -I would like to have a rust crate to dynamically or statically create state machines in rust without any macros. -The state machines should allow for synchronous and asynchronous transitions and ideally be serializable as well. - -### Implement new werewolf bot -I would love to have a more flexible werewolf bot implementation. -The goals would be relatively ambitious: -- Allow for custom role implementations (likely using custom programming language) -- All role behaviour should be modeled using state machines and be deterministic for a single playthrough -- The state of a playthrough should be saved somehow to tolerate failures or restarts of the bot - -### Parse CS Demos -I already worked a bit on analysing cs demos in the past and would love to have a solid implementation for this in rust. -It should be flexible enough to allow one to build different tools using it. - -### Implement jiffy Queue -A lock free queue - -### Implement Combine-and-Exchange locks -A different type of lock for async contexts - -#### References -- [Paper proposing the idea](https://arxiv.org/abs/2511.09194) - -### Custom Rust async runtime -A custom async runtime for rust to try out my own ideas for a runtime. - -### Custom drone software -I would love to have my own implementation for drone control software. -This should involve all the bells and whistles, like parts for receiving input commands, autonomous operation etc. - -### Camera tracker -Software that can "lock" onto something on the screen and try to track it +- [PID in Rust](./projects/pid-in-rust.md) +- [Image Processing in Rust](./projects/image-processing-in-rust.md) +- [Custom Visualisations for Firefly III](./projects/custom-visualisations-for-firefly-iii.md) +- [Sans-IO Rust implementation of minecraft protocol](./projects/sans-io-rust-implementation-of-minecraft-protocol.md) +- [Custom Minecraft Proxy](./projects/custom-minecraft-proxy.md) +- [Signal Processing](./projects/signal-processing.md) +- [(Fast) Fourier Transform](./projects/fourier-transform.md) +- [Crystalline memory reclaimation](./projects/crystalline-memory-reclaimation.md) +- [Wait-Free memory allocator](./projects/wait-free-memory-allocator.md) +- [2D Fluid Sim](./projects/2d-fluid-sim.md) +- [Graph Layout Engine](./projects/graph-layout-engine.md) +- [Calorie Tracker](./projects/calorie-tracker.md) +- [Visualise minecraft items and their relations](./projects/minecraft-items.md) +- [Nomad Gitlab Runner](./projects/nomad-gitlab-runner.md) +- [EPaxos implementation](./projects/epaxos-implementation.md) +- [Postgres protocol implementation](./projects/postgres-protocol-implementation.md) +- [Rust crate to receive stream from OBS](./projects/rust-crate-to-receive-obs-stream.md) +- [Sensor Fusion](./projects/sensor-fusion.md) +- [E-Graph implementation](./projects/e-graph-implementation.md) +- [Memory SSA](./projects/memory-ssa.md) +- [Vault secret engine for ceph s3](./projects/vault-secret-engine-ceph-s3.md) +- [Vault secret engine for ceph users](./projects/vault-secret-engine-ceph-users.md) +- [Vault secret engine for gitlab tokens](./projects/vault-secret-engine-gitlab-tokens.md) +- [Wordle Solver](./projects/wordle-solver.md) +- [Rust crate for state machines](./projects/state-machine-crate.md) +- [Implement new werewolf bot](./projects/werewolf-bot.md) +- [Parse CS Demos](./projects/cs-demos.md) +- [Implement jiffy Queue](./projects/jiffy-queue.md) +- [Implement Combine-and-Exchange locks](./projects/combine-exchange-locks.md) +- [Custom Rust async runtime](./projects/custom-rust-async-runtime.md) +- [Custom drone software](./projects/custom-drone-software.md) +- [Camera tracker](./projects/camera-tracker.md) diff --git a/projects/2d-fluid-sim.md b/projects/2d-fluid-sim.md new file mode 100644 index 0000000..88f8b29 --- /dev/null +++ b/projects/2d-fluid-sim.md @@ -0,0 +1,8 @@ +# 2D Fluid Sim +A simple 2D fluid simulation that would allow me to get a basic analysis of a cross-section of a wing or similar structures. + +## References +- [PDF by 10 Minute Physics](https://matthias-research.github.io/pages/tenMinutePhysics/17-fluidSim.pdf) + +## implementations +- [Rust Fluidsim](https://gitea.lol3r.com/leon/fluidsim) diff --git a/projects/calorie-tracker.md b/projects/calorie-tracker.md new file mode 100644 index 0000000..886f603 --- /dev/null +++ b/projects/calorie-tracker.md @@ -0,0 +1,5 @@ +# Calorie Tracker +A simple calorie tracker + +## implementations +- [CalFlow](https://gitea.lol3r.com/leon/calflow) diff --git a/projects/camera-tracker.md b/projects/camera-tracker.md new file mode 100644 index 0000000..b47df2e --- /dev/null +++ b/projects/camera-tracker.md @@ -0,0 +1,2 @@ +# Camera tracker +Software that can "lock" onto something on the screen and try to track it diff --git a/projects/combine-exchange-locks.md b/projects/combine-exchange-locks.md new file mode 100644 index 0000000..5c78892 --- /dev/null +++ b/projects/combine-exchange-locks.md @@ -0,0 +1,5 @@ +# Implement Combine-and-Exchange locks +A different type of lock for async contexts + +## References +- [Paper proposing the idea](https://arxiv.org/abs/2511.09194) diff --git a/projects/crystalline-memory-reclaimation.md b/projects/crystalline-memory-reclaimation.md new file mode 100644 index 0000000..8ff6005 --- /dev/null +++ b/projects/crystalline-memory-reclaimation.md @@ -0,0 +1,3 @@ +# Crystalline memory reclaimation +A lock-free/wait-free (depending on configuration used) memory reclaimation scheme for concurrent data structures. +I want to implement this as a Rust crate, with a safe interface that should basically make it impossible to misuse (as little unsafe as possible in public API) diff --git a/projects/cs-demos.md b/projects/cs-demos.md new file mode 100644 index 0000000..f168d3d --- /dev/null +++ b/projects/cs-demos.md @@ -0,0 +1,3 @@ +# Parse CS Demos +I already worked a bit on analysing cs demos in the past and would love to have a solid implementation for this in rust. +It should be flexible enough to allow one to build different tools using it. diff --git a/projects/custom-drone-software.md b/projects/custom-drone-software.md new file mode 100644 index 0000000..49e2dfa --- /dev/null +++ b/projects/custom-drone-software.md @@ -0,0 +1,3 @@ +# Custom drone software +I would love to have my own implementation for drone control software. +This should involve all the bells and whistles, like parts for receiving input commands, autonomous operation etc. diff --git a/projects/custom-minecraft-proxy.md b/projects/custom-minecraft-proxy.md new file mode 100644 index 0000000..580a9cd --- /dev/null +++ b/projects/custom-minecraft-proxy.md @@ -0,0 +1,2 @@ +# Custom Minecraft Proxy +This would require the [protocol implementation](#sans-io-rust-implementation-of-minecraft-protocol) to be done first or at least developed alongside. diff --git a/projects/custom-rust-async-runtime.md b/projects/custom-rust-async-runtime.md new file mode 100644 index 0000000..7d3baf3 --- /dev/null +++ b/projects/custom-rust-async-runtime.md @@ -0,0 +1,2 @@ +# Custom Rust async runtime +A custom async runtime for rust to try out my own ideas for a runtime. diff --git a/projects/custom-visualisations-for-firefly-iii.md b/projects/custom-visualisations-for-firefly-iii.md new file mode 100644 index 0000000..b84c9e6 --- /dev/null +++ b/projects/custom-visualisations-for-firefly-iii.md @@ -0,0 +1,2 @@ +# Custom Visualisations for Firefly III +I am already tracking basically all of my finances in my personal Firefly III instance, but I feel like there could be more interesting insights hidden in the data that is not being shown by default. diff --git a/projects/e-graph-implementation.md b/projects/e-graph-implementation.md new file mode 100644 index 0000000..5f7daec --- /dev/null +++ b/projects/e-graph-implementation.md @@ -0,0 +1 @@ +# E-Graph implementation diff --git a/projects/epaxos-implementation.md b/projects/epaxos-implementation.md new file mode 100644 index 0000000..f43a546 --- /dev/null +++ b/projects/epaxos-implementation.md @@ -0,0 +1 @@ +# EPaxos implementation diff --git a/projects/fourier-transform.md b/projects/fourier-transform.md new file mode 100644 index 0000000..502b978 --- /dev/null +++ b/projects/fourier-transform.md @@ -0,0 +1 @@ +# (Fast) Fourier Transform diff --git a/projects/graph-layout-engine.md b/projects/graph-layout-engine.md new file mode 100644 index 0000000..cc73e58 --- /dev/null +++ b/projects/graph-layout-engine.md @@ -0,0 +1 @@ +# Graph Layout Engine diff --git a/projects/image-processing-in-rust.md b/projects/image-processing-in-rust.md new file mode 100644 index 0000000..41d5fec --- /dev/null +++ b/projects/image-processing-in-rust.md @@ -0,0 +1 @@ +# Image Processing in Rust diff --git a/projects/jiffy-queue.md b/projects/jiffy-queue.md new file mode 100644 index 0000000..157a9ae --- /dev/null +++ b/projects/jiffy-queue.md @@ -0,0 +1,2 @@ +# Implement jiffy Queue +A lock free queue diff --git a/projects/memory-ssa.md b/projects/memory-ssa.md new file mode 100644 index 0000000..911c17e --- /dev/null +++ b/projects/memory-ssa.md @@ -0,0 +1 @@ +# Memory SSA diff --git a/projects/minecraft-items.md b/projects/minecraft-items.md new file mode 100644 index 0000000..8851741 --- /dev/null +++ b/projects/minecraft-items.md @@ -0,0 +1,6 @@ +# Visualise minecraft items and their relations +Ingest the information about minecraft items and entities and their relations somehow and then generate different (interactive) graphs that show the relations between items. +Possible relations: +- Used in crafting recipe +- Dropped by + diff --git a/projects/nomad-gitlab-runner.md b/projects/nomad-gitlab-runner.md new file mode 100644 index 0000000..47fc18b --- /dev/null +++ b/projects/nomad-gitlab-runner.md @@ -0,0 +1,2 @@ +# Nomad Gitlab Runner +A Gitlab Runner that will spawn the given jobs on a Nomad cluster for easier scaling diff --git a/projects/pid-in-rust.md b/projects/pid-in-rust.md new file mode 100644 index 0000000..5242c80 --- /dev/null +++ b/projects/pid-in-rust.md @@ -0,0 +1 @@ +# PID in Rust diff --git a/projects/postgres-protocol-implementation.md b/projects/postgres-protocol-implementation.md new file mode 100644 index 0000000..c07b939 --- /dev/null +++ b/projects/postgres-protocol-implementation.md @@ -0,0 +1 @@ +# Postgres protocol implementation diff --git a/projects/rust-crate-to-receive-obs-stream.md b/projects/rust-crate-to-receive-obs-stream.md new file mode 100644 index 0000000..4796aad --- /dev/null +++ b/projects/rust-crate-to-receive-obs-stream.md @@ -0,0 +1 @@ +# Rust crate to receive stream from OBS diff --git a/projects/sans-io-rust-implementation-of-minecraft-protocol.md b/projects/sans-io-rust-implementation-of-minecraft-protocol.md new file mode 100644 index 0000000..d8cf337 --- /dev/null +++ b/projects/sans-io-rust-implementation-of-minecraft-protocol.md @@ -0,0 +1 @@ +# Sans-IO Rust implementation of minecraft protocol diff --git a/projects/sensor-fusion.md b/projects/sensor-fusion.md new file mode 100644 index 0000000..296e2dc --- /dev/null +++ b/projects/sensor-fusion.md @@ -0,0 +1,2 @@ +# Sensor Fusion +Things like Kalman-Filters etc. diff --git a/projects/signal-processing.md b/projects/signal-processing.md new file mode 100644 index 0000000..fca80a1 --- /dev/null +++ b/projects/signal-processing.md @@ -0,0 +1 @@ +# Signal Processing diff --git a/projects/state-machine-crate.md b/projects/state-machine-crate.md new file mode 100644 index 0000000..95dc5e3 --- /dev/null +++ b/projects/state-machine-crate.md @@ -0,0 +1,3 @@ +# Rust crate for state machines +I would like to have a rust crate to dynamically or statically create state machines in rust without any macros. +The state machines should allow for synchronous and asynchronous transitions and ideally be serializable as well. diff --git a/projects/vault-secret-engine-ceph-s3.md b/projects/vault-secret-engine-ceph-s3.md new file mode 100644 index 0000000..1bacd0a --- /dev/null +++ b/projects/vault-secret-engine-ceph-s3.md @@ -0,0 +1,2 @@ +# Vault secret engine for ceph s3 +A custom vault secret engine to dynamically generate and handle s3 credentials for ceph. diff --git a/projects/vault-secret-engine-ceph-users.md b/projects/vault-secret-engine-ceph-users.md new file mode 100644 index 0000000..7bf3a2a --- /dev/null +++ b/projects/vault-secret-engine-ceph-users.md @@ -0,0 +1 @@ +# Vault secret engine for ceph users diff --git a/projects/vault-secret-engine-gitlab-tokens.md b/projects/vault-secret-engine-gitlab-tokens.md new file mode 100644 index 0000000..d3f0409 --- /dev/null +++ b/projects/vault-secret-engine-gitlab-tokens.md @@ -0,0 +1,2 @@ +# Vault secret engine for gitlab tokens +A custom vault secret engine to dynamically generate and handle gitlab access tokens with different scopes. diff --git a/projects/wait-free-memory-allocator.md b/projects/wait-free-memory-allocator.md new file mode 100644 index 0000000..d7b724a --- /dev/null +++ b/projects/wait-free-memory-allocator.md @@ -0,0 +1 @@ +# Wait-Free memory allocator diff --git a/projects/werewolf-bot.md b/projects/werewolf-bot.md new file mode 100644 index 0000000..8b1814b --- /dev/null +++ b/projects/werewolf-bot.md @@ -0,0 +1,6 @@ +# Implement new werewolf bot +I would love to have a more flexible werewolf bot implementation. +The goals would be relatively ambitious: +- Allow for custom role implementations (likely using custom programming language) +- All role behaviour should be modeled using state machines and be deterministic for a single playthrough +- The state of a playthrough should be saved somehow to tolerate failures or restarts of the bot diff --git a/projects/wordle-solver.md b/projects/wordle-solver.md new file mode 100644 index 0000000..c8ad9f2 --- /dev/null +++ b/projects/wordle-solver.md @@ -0,0 +1,2 @@ +# Wordle Solver +A simple program to help in solving wordle.