Darwin
Darwin is an evolutionary UI engine. Instead of boring 2D dashboards, we render website components as 3D gravity wells and users as swarming agents. We pipe this behavioral data into Google Gemini, which acts as an autonomous UX designer—analyzing the clusters and writing actual code patches to fix usability issues on the fly.
Install / Use
/learn @BoscoZhangers/DarwinREADME
🚀 Key Features
🌌 Gravity-Well Visualization
Component interactions (clicks/engagement) are tracked in real-time. Each component is represented as a "gravity well" in a 3D simulation.
- Dynamic Scaling: Spheres grow in size proportionally to their interaction count.
- Focus Zoom: Double-click any gravity well to zoom the camera in and reveal the component's internal property fields.
🪄 AI Assistant (Powered by Gemini)
Directly modify your code using natural language. The integrated AI panel allows you to request UI changes and preview them instantly before committing.
🛠️ Runtime Renderer & Editor
- Live Extraction: Drag elements directly from the live preview into the tracking environment to begin monitoring them.
- Syntax-Highlighted Editor: A full-featured editor workspace with GitHub sync and commit capabilities.
- Theming: Toggle between high-contrast Dark and Light modes for both the 3D scene and the analytics panels.
🛠️ Tech Stack
- Frontend: React, Tailwind CSS, Lucide React
- 3D Engine: Three.js, React Three Fiber, React Three Drei
- AI: Google Gemini 2.0
- Backend/Auth: Firebase (Swarm Subscription), Octokit (GitHub API)
- Post-processing: Bloom, Vignette (EffectComposer)
📦 Dev Setup
-
Clone the repository
git clone [https://github.com/BoscoZhangers/Darwin.git](https://github.com/BoscoZhangers/Darwin.git) -
Install dependencies
npm install -
Configure Environment Variables Create a .env file with your Firebase and GitHub API credentials.
-
Run the development server
npm run dev
🧠 Evolutionary Vision
Darwin treats code as a living organism. By visualizing the "heartbeat" of a component through interactions, developers can identify bottlenecks and optimize UX flow through a spatial lens rather than a flat line of text.
