feat: Add Studio UI, intake system, and extractor improvements
Dashboard: - Add Studio page with drag-drop model upload and Claude chat - Add intake system for study creation workflow - Improve session manager and context builder - Add intake API routes and frontend components Optimization Engine: - Add CLI module for command-line operations - Add intake module for study preprocessing - Add validation module with gate checks - Improve Zernike extractor documentation - Update spec models with better validation - Enhance solve_simulation robustness Documentation: - Add ATOMIZER_STUDIO.md planning doc - Add ATOMIZER_UX_SYSTEM.md for UX patterns - Update extractor library docs - Add study-readme-generator skill Tools: - Add test scripts for extraction validation - Add Zernike recentering test Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
144
docs/plans/ATOMIZER_STUDIO.md
Normal file
144
docs/plans/ATOMIZER_STUDIO.md
Normal file
@@ -0,0 +1,144 @@
|
||||
# Atomizer Studio - Technical Implementation Plan
|
||||
|
||||
**Version**: 1.0
|
||||
**Date**: January 24, 2026
|
||||
**Status**: In Progress
|
||||
**Author**: Atomizer Team
|
||||
|
||||
---
|
||||
|
||||
## 1. Executive Summary
|
||||
|
||||
**Atomizer Studio** is a unified, drag-and-drop study creation environment that consolidates file management, visual configuration (Canvas), and AI assistance into a single real-time workspace. It replaces the legacy wizard-based approach with a modern "Studio" experience.
|
||||
|
||||
### Core Principles
|
||||
|
||||
| Principle | Implementation |
|
||||
|-----------|----------------|
|
||||
| **Drag & Drop First** | No wizards, no forms. Drop files, see results. |
|
||||
| **AI-Native** | Claude sees everything: files, parameters, goals. It proposes, you approve. |
|
||||
| **Zero Commitment** | Work in "Draft Mode" until ready. Nothing is permanent until "Build". |
|
||||
|
||||
---
|
||||
|
||||
## 2. Architecture
|
||||
|
||||
### 2.1 The Draft Workflow
|
||||
|
||||
```
|
||||
User Opens /studio
|
||||
│
|
||||
▼
|
||||
POST /intake/draft ──► Creates studies/_inbox/draft_{id}/
|
||||
│
|
||||
▼
|
||||
User Drops Files ──► Auto-Introspection ──► Parameters Discovered
|
||||
│
|
||||
▼
|
||||
AI Reads Context ──► Proposes Configuration ──► Canvas Updates
|
||||
│
|
||||
▼
|
||||
User Clicks BUILD ──► Finalize ──► studies/{topic}/{name}/
|
||||
```
|
||||
|
||||
### 2.2 Interface Layout
|
||||
|
||||
```
|
||||
┌───────────────────┬───────────────────────────────────────────────┬───────────────────┐
|
||||
│ RESOURCES (Left) │ CANVAS (Center) │ ASSISTANT (Right) │
|
||||
├───────────────────┼───────────────────────────────────────────────┼───────────────────┤
|
||||
│ ▼ DROP ZONE │ │ │
|
||||
│ [Drag files] │ ┌───────┐ ┌────────┐ ┌─────────┐ │ "I see you want │
|
||||
│ │ │ Model ├─────►│ Solver ├─────►│ Extract │ │ to minimize │
|
||||
│ ▼ MODEL FILES │ └───────┘ └────────┘ └────┬────┘ │ mass. Adding │
|
||||
│ • bracket.sim │ │ │ objective..." │
|
||||
│ • bracket.prt │ ┌────▼────┐ │ │
|
||||
│ │ │ Objectiv│ │ [Apply Changes] │
|
||||
│ ▼ PARAMETERS │ └─────────┘ │ │
|
||||
│ • thickness │ │ │
|
||||
│ • rib_count │ AtomizerSpec v2.0 │ │
|
||||
│ │ (Draft Mode) │ │
|
||||
│ ▼ CONTEXT │ │ │
|
||||
│ • goals.pdf │ │ [ Chat Input... ] │
|
||||
├───────────────────┼───────────────────────────────────────────────┼───────────────────┤
|
||||
│ [ Reset Draft ] │ [ Validate ] [ BUILD STUDY ] │ │
|
||||
└───────────────────┴───────────────────────────────────────────────┴───────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. Implementation Phases
|
||||
|
||||
### Phase 1: Backend API Enhancements
|
||||
- `POST /intake/draft` - Create anonymous draft
|
||||
- `GET /intake/{id}/context/content` - Extract text from uploaded files
|
||||
- Enhanced `POST /intake/{id}/finalize` with rename support
|
||||
|
||||
### Phase 2: Frontend Studio Shell
|
||||
- `/studio` route with 3-column layout
|
||||
- DropZone component with file categorization
|
||||
- Integrated Canvas in draft mode
|
||||
- Parameter discovery panel
|
||||
|
||||
### Phase 3: AI Integration
|
||||
- Context-aware chat system
|
||||
- Spec modification via Claude
|
||||
- Real-time canvas updates
|
||||
|
||||
### Phase 4: Polish & Testing
|
||||
- Full DevLoop testing
|
||||
- Edge case handling
|
||||
- UX polish and animations
|
||||
|
||||
---
|
||||
|
||||
## 4. File Structure
|
||||
|
||||
```
|
||||
atomizer-dashboard/
|
||||
├── frontend/src/
|
||||
│ ├── pages/
|
||||
│ │ └── Studio.tsx
|
||||
│ ├── components/
|
||||
│ │ └── studio/
|
||||
│ │ ├── StudioLayout.tsx
|
||||
│ │ ├── ResourcePanel.tsx
|
||||
│ │ ├── StudioCanvas.tsx
|
||||
│ │ ├── StudioChat.tsx
|
||||
│ │ ├── DropZone.tsx
|
||||
│ │ ├── ParameterList.tsx
|
||||
│ │ ├── ContextFileList.tsx
|
||||
│ │ └── BuildDialog.tsx
|
||||
│ └── hooks/
|
||||
│ └── useDraft.ts
|
||||
├── backend/api/
|
||||
│ └── routes/
|
||||
│ └── intake.py (enhanced)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. API Endpoints
|
||||
|
||||
### New Endpoints
|
||||
|
||||
| Endpoint | Method | Description |
|
||||
|----------|--------|-------------|
|
||||
| `/intake/draft` | POST | Create anonymous draft study |
|
||||
| `/intake/{id}/context/content` | GET | Extract text from context files |
|
||||
|
||||
### Enhanced Endpoints
|
||||
|
||||
| Endpoint | Change |
|
||||
|----------|--------|
|
||||
| `/intake/{id}/finalize` | Added `new_name` parameter for rename |
|
||||
|
||||
---
|
||||
|
||||
## 6. Status
|
||||
|
||||
- [x] Plan documented
|
||||
- [ ] Phase 1: Backend
|
||||
- [ ] Phase 2: Frontend Shell
|
||||
- [ ] Phase 3: AI Integration
|
||||
- [ ] Phase 4: Testing & Polish
|
||||
Reference in New Issue
Block a user