Engineering Lab
Can you build it better?
Our design is one way to solve the problem, not the required one. If you see a simpler, safer or cheaper architecture, show us. Talk it through with an AI model running on your own computer, turn the discussion into a proposal, and share it with the team on GitHub.
Challenge our architecture
The requirements are fixed. Everything else is open: sensors, processors, algorithms and software.
Fixed requirements
- FR-1 Standing electric kick scooter.
- FR-2 Detects the road user ahead.
- FR-3 Limits motor power to keep a safe gap.
- FR-4 Commanded propulsion speed of at most 20 km/h.
- FR-5 Warns the rider early before a collision.
- FR-6 Never brakes on its own.
- FR-7 The rider brakes and the rider's brake always wins.
- FR-8 Fails safe: bad or stale data removes motor power.
Our reference design
- Sensors
- Forward camera, FMCW radar, GNSS, IMU, wheel encoder
- Perception
- Raspberry Pi 5 + AI HAT+: detection, radar–camera fusion. Not trusted with the motor.
- Safety
- STM32G474: checks messages, latches faults, enforces limits
- Motor
- Disabled. Only through a documented manufacturer interface.
Simulation only so far: 25 of 25 safety tests pass; no hardware has been built.
Questions we would like challenged
- Do we need two processors, or can one chip meet the timing and fault-handling needs?
- Is camera + radar fusion necessary, or would radar alone meet FR-2?
- Can the safety function be simpler and easier to verify?
- What is the cheapest design that still meets FR-1 to FR-8?
The AI reads our public engineering brief. It contains no private code or documents.
Discuss with Local AI
The model runs in Ollama on your computer. Your conversation stays in this browser and your local Ollama. Nothing is sent to us, to GitHub or to any AI company.
Ollama address
Only local addresses (127.0.0.1, localhost) are accepted. With the default, the lab tries the lab session (port 11435) first, then Ollama's normal port 11434.
Set up Ollama (about 5 minutes)
1. Install Ollama from ollama.com/download and download a chat model, once. The 7B model gives the better engineering discussion and needs about 8 GB of free memory. On a laptop with a 4 GB graphics card it takes a few minutes per answer. The 3B model answers in under a minute there, but its engineering judgement is weaker.
ollama pull qwen2.5:7b
# smaller machines:
ollama pull qwen2.5:3b
2. Start a lab session: a second Ollama server that only this website may use, and only while its window is open. Your normal Ollama is not changed.
Windows (PowerShell)
$env:OLLAMA_HOST = "127.0.0.1:11435"
$env:OLLAMA_ORIGINS = "https://karimsamy11.github.io"
ollama servemacOS (Terminal)
OLLAMA_HOST=127.0.0.1:11435 OLLAMA_ORIGINS=https://karimsamy11.github.io ollama serveLinux (terminal)
OLLAMA_HOST=127.0.0.1:11435 OLLAMA_ORIGINS=https://karimsamy11.github.io ollama serve
# If Ollama runs as a system service, its models are stored elsewhere.
# Download the model for the session once, in a second terminal:
OLLAMA_HOST=127.0.0.1:11435 ollama pull qwen2.5:7b3. Press Connect to Ollama. Chrome and Edge ask whether this site may access your local network or apps on your device: choose Allow. It is needed to reach Ollama on your own computer.
4. When you are done, press Ctrl+C or close the window. The website can no longer reach Ollama.
What you allow. While the lab session runs, pages under https://karimsamy11.github.io can use that Ollama server: run, list, download and delete models. Nothing else on your computer is reachable, and the session listens on your own computer only. Do not use 0.0.0.0 as the address, and do not set OLLAMA_ORIGINS to *.
Safari, or blocked by your browser? Run the lab from your own computer instead. Ollama already trusts local pages, so step 2 is not needed; your normal Ollama on port 11434 is used:
git clone https://github.com/karimsamy11/scooter-acc-expose
cd scooter-acc-expose
python -m http.server 8000 --bind 127.0.0.1
# open http://localhost:8000/lab/
Start with your idea, for example: “Why use a Raspberry Pi and an STM32? A single ESP32-S3 might be enough.”
Share your idea
Three questions, a few sentences each. If you use the local AI, it can turn your answers into a full engineering proposal for you. That part is optional.
Discuss with the team
Proposals and questions live in GitHub Discussions. The project owner reads every proposal and replies there. Nothing is accepted automatically.
Comments need a GitHub account. Open GitHub Discussions.
Research prototype in simulation. Nothing on this page or said by the AI is a claim of road legality, ISO compliance, certified safety or validated stopping performance. AI answers can be wrong; check them.