| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
A.D.A = Advanced Design Assistant
ADA V2 is a sophisticated AI assistant designed for multimodal interaction. It combines Google's Gemini 2.5 Native Audio with computer vision, gesture control, and 3D CAD generation in a Electron desktop application.
| Feature | Description | Technology |
|---|---|---|
| 🗣️ Low-Latency Voice | Real-time conversation with interrupt handling | Gemini 2.5 Native Audio |
| 🧊 Parametric CAD | Editable 3D model generation from voice prompts | build123d → STL |
| 🖨️ 3D Printing | Slicing and wireless print job submission | OrcaSlicer + Moonraker/OctoPrint |
| 🖐️ Minority Report UI | Gesture-controlled window manipulation | MediaPipe Hand Tracking |
| 👁️ Face Authentication | Secure local biometric login | MediaPipe Face Landmarker |
| 🌐 Web Agent | Autonomous browser automation | Playwright + Chromium |
| 🏠 Smart Home | Voice control for TP-Link Kasa devices | python-kasa |
| 📁 Project Memory | Persistent context across sessions | File-based JSON storage |
ADA's "Minority Report" interface uses your webcam to detect hand gestures:
| Gesture | Action |
|---|---|
| 🤏 Pinch | Confirm action / click |
| ✋ Open Palm | Release the window |
| ✊ Close Fist | "Select" and grab a UI window to drag it |
Tip: Enable the video feed window to see the hand tracking overlay.
graph TB
subgraph Frontend ["Frontend (Electron + React)"]
UI[React UI]
THREE[Three.js 3D Viewer]
GESTURE[MediaPipe Gestures]
SOCKET_C[Socket.IO Client]
end
subgraph Backend ["Backend (Python 3.11 + FastAPI)"]
SERVER[server.py<br/>Socket.IO Server]
ADA[ada.py<br/>Gemini Live API]
WEB[web_agent.py<br/>Playwright Browser]
CAD[cad_agent.py<br/>CAD + build123d]
PRINTER[printer_agent.py<br/>3D Printing + OrcaSlicer]
KASA[kasa_agent.py<br/>Smart Home]
AUTH[authenticator.py<br/>MediaPipe Face Auth]
PM[project_manager.py<br/>Project Context]
end
UI --> SOCKET_C
SOCKET_C <--> SERVER
SERVER --> ADA
ADA --> WEB
ADA --> CAD
ADA --> KASA
SERVER --> AUTH
SERVER --> PM
SERVER --> PRINTER
CAD -->|STL file| THREE
CAD -->|STL file| PRINTER
# 1. Clone and enter
git clone https://github.com/nazirlouis/ada_v2.git && cd ada_v2
# 2. Create Python environment (Python 3.11)
conda create -n ada_v2 python=3.11 -y && conda activate ada_v2
brew install portaudio # macOS only (for PyAudio)
pip install -r requirements.txt
playwright install chromium
# 3. Setup frontend
npm install
# 4. Create .env file
echo "GEMINI_API_KEY=your_key_here" > .env
# 5. Run!
conda activate ada_v2 && npm run devIf you have never coded before, follow these steps first!
Step 1: Install Visual Studio Code (The Editor)
Step 2: Install Anaconda (The Manager)
Step 3: Install Git (The Downloader)
Step 4: Get the Code
git clone https://github.com/nazirlouis/ada_v2.gitStep 5: Open in VS Code
Once you have the basics above, continue here.
MacOS:
# Audio Input/Output support (PyAudio)
brew install portaudioWindows:
Create a single Python 3.11 environment:
conda create -n ada_v2 python=3.11
conda activate ada_v2
# Install all dependencies
pip install -r requirements.txt
# Install Playwright browsers
playwright install chromiumRequires Node.js 18+ and npm. Download from nodejs.org if not installed.
# Verify Node is installed
node --version # Should show v18.x or higher
# Install frontend dependencies
npm installTo use the secure voice features, ADA needs to know what you look like.
The system creates a settings.json file on first run. You can modify this to change behavior:
| Key | Type | Description |
|---|---|---|
| face_auth_enabled | bool | If true, blocks all AI interaction until your face is recognized via the camera. |
| tool_permissions | obj | Controls manual approval for specific tools. |
| tool_permissions.generate_cad | bool | If true, requires you to click "Confirm" on the UI before generating CAD. |
| tool_permissions.run_web_agent | bool | If true, requires confirmation before opening the browser agent. |
| tool_permissions.write_file | bool | Critical: Requires confirmation before the AI writes code/files to disk. |
ADA V2 can slice STL files and send them directly to your 3D printer.
Supported Hardware:
Step 1: Install Slicer ADA uses OrcaSlicer (recommended) or PrusaSlicer to generate G-code.
Step 2: Connect Printer
ADA uses Google's Gemini API for voice and intelligence. You need a free API key.
GEMINI_API_KEY=your_api_key_here
Note: Keep this key private! Never commit your .env file to Git.
You have two options to run the app. Ensure your ada_v2 environment is active!
The app is smart enough to start the backend for you.
npm run devUse this if you want to see the Python logs (recommended for debugging).
Terminal 1 (Backend):
conda activate ada_v2
python backend/server.pyTerminal 2 (Frontend):
# Environment doesn't matter here, but keep it simple
npm run devSymptoms: Error about camera access, or video feed shows black.
Solution:
Symptoms: Backend crashes on startup with "API key not found".
Solution:
Symptoms: websockets.exceptions.ConnectionClosedError: 1011 (internal error).
Solution: This is a server-side issue from the Gemini API. Simply reconnect by clicking the connect button or saying "Hello Ada" again. If it persists, check your internet connection or try again later.
Coming soon! Screenshots and demo videos will be added here.
ada_v2/ ├── backend/ # Python server & AI logic │ ├── ada.py # Gemini Live API integration │ ├── server.py # FastAPI + Socket.IO server │ ├── cad_agent.py # CAD generation orchestrator │ ├── printer_agent.py # 3D printer discovery & slicing │ ├── web_agent.py # Playwright browser automation │ ├── kasa_agent.py # TP-Link smart home control │ ├── authenticator.py # MediaPipe face auth logic │ ├── project_manager.py # Project context management │ ├── tools.py # Tool definitions for Gemini │ └── reference.jpg # Your face photo (add this!) ├── src/ # React frontend │ ├── App.jsx # Main application component │ ├── components/ # UI components (11 files) │ └── index.css # Global styles ├── electron/ # Electron main process │ └── main.js # Window & IPC setup ├── projects/ # User project data (auto-created) ├── .env # API keys (create this!) ├── requirements.txt # Python dependencies ├── package.json # Node.js dependencies └── README.md # You are here!
| Limitation | Details |
|---|---|
| macOS & Windows | Tested on macOS 14+ and Windows 10/11. Linux is untested. |
| Camera Required | Face auth and gesture control need a working webcam. |
| Gemini API Quota | Free tier has rate limits; heavy CAD iteration may hit limits. |
| Network Dependency | Requires internet for Gemini API (no offline mode). |
| Single User | Face auth recognizes one person (the reference.jpg). |
Contributions are welcome! Here's how:
| Aspect | Implementation |
|---|---|
| API Keys | Stored in .env, never committed to Git. |
| Face Data | Processed locally, never uploaded. |
| Tool Confirmations | Write/CAD/Web actions can require user approval. |
| No Cloud Storage | All project data stays on your machine. |
Warning
Never share your .env file or reference.jpg. These contain sensitive credentials and biometric data.
This project is licensed under the MIT License — see the LICENSE file for details.
Built with 🤖 by Nazir Louis
Bridging AI, CAD, and Vision in a Single Interface
| Back | FazBrowse Home | New Git URL |