GenDesign is an AI-first, agent-powered design intelligence tool that transforms inspirational creatives (like ads, social media posts, and brand visuals) into actionable design blueprints. It empowers solopreneurs, content creators, and non-designers to deconstruct, understand, and recreate professional designs—without needing expert tools like Figma or Photoshop.
In the creative world, inspiration is everywhere, but implementation is a bottleneck. GenDesign acts as your design analyst, providing an X-ray view of any creative. It breaks down complex visuals into their fundamental components—colors, fonts, layout, and assets—making professional design principles accessible to everyone. The goal is to turn inspiration into action, instantly.
- Design Blueprint Extraction: Converts images into structured JSON blueprints.
- Human-Readable Design Briefs: Generates Markdown briefs for easy understanding.
- Agentic Workflow: Powered by LangGraph for seamless task orchestration.
- Multi-Modal AI: Utilizes GPT-4o for both vision and text analysis.
| Layer | Technology/Library | Purpose |
|---|---|---|
| Orchestration | LangGraph, LangChain | Building the agentic state machine. |
| LLM Provider | OpenAI | GPT-4o for vision and text generation. |
| Backend | FastAPI, Uvicorn | Asynchronous API server. |
| Frontend | Streamlit | Interactive user interface. |
| Data Validation | Pydantic | Schema definition and data validation. |
| Dependency Mgmt | Poetry | Package management and virtual environments. |
| Containerization | Docker, Docker Compose | For containerized deployment. |
GenDesign/
├── .env # Local environment variables (API keys)
├── .gitignore
├── poetry.lock # Exact versions of dependencies
├── pyproject.toml # Project metadata and dependencies
├── README.md # This file
│
└── src/
├── __init__.py
├── agents/ # Contains individual agent functions
│ ├── __init__.py
│ ├── blueprint_writer.py # Agent 2: Converts JSON to Markdown
│ └── visual_analyst.py # Agent 1: Extracts JSON from image
│
├── api/ # FastAPI routing logic
│ └── routes.py # Defines the /generate-blueprint endpoint
│
├── core/ # Core application logic and schemas
│ ├── __init__.py
│ ├── graph.py # LangGraph state machine definition
│ └── schemas.py # Pydantic models for state and data structures
│
├── app.py # Streamlit frontend code
├── config.py # Application settings management
└── main.py # FastAPI application entry point
- Python 3.11+
- Poetry for dependency management.
-
Clone the repository:
git clone <your-repository-url> cd GenDesign
-
Install dependencies: This command will create a virtual environment and install all necessary packages from
pyproject.toml.poetry install
-
Configure Environment Variables: Create a
.envfile in the project root by copying the example:cp .env.example .env
Open the
.envfile and add your OpenAI API key:# .env OPENAI_API_KEY="sk-..."
The application requires two separate terminal sessions: one for the backend and one for the frontend.
-
Start the Backend Server:
poetry run uvicorn src.main:app --reload
The API will be available at http://127.0.0.1:8000.
-
Start the Frontend Application:
poetry run streamlit run src/app.py
The web app will be available at http://localhost:8501.
- Description: Accepts an image, processes it through the agentic pipeline, and returns the results.
- Request Body:
- Content-Type:
multipart/form-data image: The image file (e.g., JPEG, PNG).
- Content-Type:
- Successful Response (200 OK):
{ "design_blueprint": { ... }, "human_readable_brief": "..." } - Error Response (500 Internal Server Error):
{ "detail": "Error message" }
- Executor Mode: Integrate with design tool APIs (e.g., Figma) to auto-generate design layers.
- Teacher Mode: Enhance briefs with explanations of design principles.
- Strategist Mode: Integrate a persistent vector database for brand alignment.
This project is licensed under the MIT License. See the LICENSE file for details.