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>
145 lines
5.8 KiB
Markdown
145 lines
5.8 KiB
Markdown
# 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
|