Meshify is a node-based creative workspace for turning references and rough sketches into production-ready 2D assets, then pushing those assets into a 3D generation pass.
- Works from a flow editor instead of a linear form
- Accepts optional image and sketch references
- Generates a polished 2D asset from prompt-only or reference-guided input
- Carries the result into a 3D model generation step
- Keeps editing and outputs separated with a
Canvas/Galleryworkspace switch - Supports browser voice input for prompt entry when speech recognition is available
- Includes local preview and download flows for generated images and 3D assets
Image Reference (optional)
\
-> 2D Asset -> 3D Model
/
Sketch Reference (optional)
The app opens directly into this workspace. The 2D Asset stage owns prompt shaping, reference handling, and image generation. The 3D Model stage uses the generated image as the handoff for 3D finalization and local preview.
| Path | Purpose |
|---|---|
apps/web |
React/Vite client for the flow editor, sketch tools, gallery, and 3D preview |
apps/api |
Thin Express API that owns provider secrets and generation endpoints |
packages/shared |
Shared request/response contracts and generation types |
packages/prompts |
Prompt-building logic for prompt-only and sketch-guided generation |
docs |
Product notes, implementation status, repo map, and operating context |
assets/demo |
Placeholder location for demo inputs and walkthrough assets |
- React 19
- Vite
- TypeScript
- MUI
- React Flow
- Express 5
- Gemini via
@google/genaifor 2D generation - fal.ai via
@fal-ai/clientfor 3D generation
npm install
npm run dev:api
npm run dev:webWeb runs separately from the API. The API defaults to http://localhost:8787.
| Command | Purpose |
|---|---|
npm run dev:web |
Start the Vite web app |
npm run dev:api |
Start the API in watch mode |
npm run build:web |
Build the web app |
npm run build:api |
Build the API bundle |
npm run typecheck:web |
Type-check the web app |
npm run typecheck:api |
Type-check the API |
npm run lint:web |
Lint the web app |
Copy .env.example into a local .env and set the providers you intend to use.
Core variables:
API_PORTAI_DEFAULT_PROVIDERGEMINI_API_KEYorGOOGLE_API_KEYGEMINI_IMAGE_MODELGEMINI_VISION_MODELFAL_KEYFAL_3D_MODEL
GET /health reports configured providers and the active model names the API sees at runtime.
Start here:
docs/project_brief.mddocs/product_spec.mddocs/implementation_status.mddocs/repo_map.mddocs/run_notes.md