---
name: "Cinema Studio Pro (Lux Studio)"
client: Oliver Internal
status: active
tech: [React, Vite, PHP, Azure AD, MSAL, Imagen 3, Veo 3.1, Kling, IndexedDB, Docker]
local_path: /Users/ai_leed/Documents/Projects/Oliver/cinema-studio-pro
deploy: ./setup.sh (local) / FileZilla + SSH (prod)
url: https://ai-sandbox.oliver.solutions/lux-studio/
server: optical-web-1
tags: [oliver, ai, image-generation, video, cinematography, php, react, azure-ad]
created: 2026-04-14
last_commit: 2026-03-23
commits: 50
---

## Overview
AI cinematography suite for professional image and video generation. Physics-based prompt engineering + Google Imagen 3 + Google Veo 3.1 + Kling. Project-first workflow with storyboard annotation.

**Live:** https://ai-sandbox.oliver.solutions/lux-studio/

## Tech Stack
- **Frontend:** React + Vite (port from .env, default 3000)
- **Backend:** PHP (api.php, video_api.php, enhance_prompt.php)
- **Storage:** IndexedDB (browser-local project data)
- **Auth:** Azure AD via MSAL + JWTValidator.php
- **AI:** Google Imagen 3, Google Veo 3.1, Kling
- **Infrastructure:** PHP server (no Docker for backend)

## Directory Structure
```
cinema-studio-pro/
├── frontend/          ← React + Vite
│   ├── src/
│   │   ├── authConfig.js      ← MSAL config
│   │   └── App.jsx
│   ├── .env.local             ← local dev vars
│   └── .env.production        ← prod vars
├── backend/           ← PHP APIs
│   ├── api.php                ← Image generation
│   ├── video_api.php          ← Video generation
│   ├── enhance_prompt.php     ← Prompt optimizer
│   ├── session_manager.php    ← Multi-user sessions
│   ├── AuthMiddleware.php     ← SSO (required by api.php)
│   └── JWTValidator.php       ← Azure AD token validation
├── setup.sh           ← Auto local dev setup
├── stop.sh            ← Auto-generated by setup.sh
└── NEW_DEPLOYMENT.md  ← Production deploy guide (FileZilla + SSH)
```

## Dev Commands
```bash
./setup.sh     # Auto-detect ports, start both servers, generate stop.sh
./stop.sh      # Stop servers
./status.sh    # Check status + last 3 log lines

# Manual frontend
cd frontend && npm install && npm run dev

# Manual PHP backend
cd backend && php -S localhost:8001
```

## Deployment
- **Local:** `./setup.sh`
- **Production:** FileZilla + SSH (see `NEW_DEPLOYMENT.md`)
- **Live URL:** https://ai-sandbox.oliver.solutions/lux-studio/
- **Local path:** `/Users/ai_leed/Documents/Projects/Oliver/cinema-studio-pro`

## Timeline / Git History
| Date | Change |
|------|--------|
| 2026-03-09 | Add Kling AI video generation engine alongside Veo 3.1 |
| 2026-03-09 | Add Kling 3.0 models (V3 and V3 Omni) to video generation |
| 2026-03-09 | style: add DM Sans font and 14px base sizing |
| 2026-03-09 | style: Rams refinement on LoginPage and AppContent |
| 2026-03-09 | style: Rams refinement on VideoPlayer and StoryboardEditor |
| 2026-03-09 | style: Rams refinement on CinePromptStudio |
| 2026-03-09 | style: Rams refinement on VideoGenTab |
| 2026-03-09 | style: Rams refinement on ProjectsTab |
| 2026-03-09 | style: drop all type weight from medium (500) to normal (400) |
| 2026-03-09 | style: remove decorative borders, keep only functional ones |
| 2026-03-09 | style: change selected toggle buttons from gold to off-white |
| 2026-03-09 | style: revert toggle buttons back to gold |
| 2026-03-09 | style: remove tab underline indicator, let type color speak |
| 2026-03-09 | style: restore purple Optimize button in Image Gen and Video Gen |
| 2026-03-09 | style: standardize backgrounds to strict 5-tone scale (950/900/800/700/600) |
| 2026-03-09 | style: reduce base font size from 14px to 13px |
| 2026-03-09 | style: add JetBrains Mono for data/spec text |
| 2026-03-09 | style: restore uppercase tracking on section labels in Image/Video Gen |
| 2026-03-09 | style: invert depth — lighter surround, darker content wells |
| 2026-03-09 | style: minimize panel contrast — slate-925 panels on slate-950 ground |
| 2026-03-09 | style: modals use bg-slate-800 to pop above dark overlay |
| 2026-03-09 | style: reduce base font size from 13px to 12px |
| 2026-03-09 | style: switch primary typeface from DM Sans to Space Grotesk |
| 2026-03-09 | style: try IBM Plex Sans + IBM Plex Mono as unified family |
| 2026-03-09 | style: remove icons from tab navigation, text only |
| 2026-03-09 | style: separate tabs from logo, spread across header |
| 2026-03-09 | style: simplify storyboard exports — let the images speak |
| 2026-03-09 | style: tabs flush left with generous logo spacing, bump to 14px |
| 2026-03-23 | feat: Kling integration, prompt optimizer rework, and stability fixes |
| 2026-03-23 | Add Kling integration + prompt optimizer rework + stability fixes |
| 2026-03-09 | Major UI restyling (typography: Space Grotesk → JetBrains Mono for data) |
| 2026-03-09 | 5-tone dark scale (950/900/800/700/600), invert depth |
| 2026-03-09 | Tabs flush left, generous logo spacing, 14px base font |

## Sessions
### 2026-04-27 – Fix image generation not working due
**Asked:** Fix image generation not working due to backend service errors.
**Done:** Disabled display_errors in config.php and verified backend service fixes.

### 2026-04-27 – Why is image generation failing on
**Asked:** Why is image generation failing on the lux-studio version?
**Done:** Identified root cause by checking auto-cleanup code and PHP errors in lux-studio backend.

### 2026-04-23 – Create a CLAUDE.md file documenting the
**Asked:** Create a CLAUDE.md file documenting the codebase setup, commands, and architecture for future Claude instances.
**Done:** Analyzed the codebase and compared it with the Oliver project variant, identifying key differences including a new Kling AI video engine not present in the current version.

### 2026-04-23 – Asked for CLAUDE.md documentation covering commands
**Asked:** Asked for CLAUDE.md documentation covering commands and architecture.
**Done:** Created concise CLAUDE.md by removing discoverable content and retaining non-obvious architectural knowledge.

### 2026-04-14 – Project catalogued
**Done:** Added to Obsidian second brain with full details.

---
## Change Log
| Date | Requested | Changed | Files |
|------|-----------|---------|-------|
| 2026-04-27 | Image generation backend | Disable display_errors, verify backend service | config.php |
| 2026-04-27 | Image generation error | Fixed backend PHP error in auto-cleanup code | lux-studio backend service |
| 2026-04-23 | Codebase documentation | CLAUDE.md created, architecture and build commands documented | CLAUDE.md |
| 2026-04-23 | CLAUDE.md documentation | Removed ~130 lines of verbose/discoverable content, kept essential commands and architecture patterns | CLAUDE.md |
| 2026-03-23 | Add Kling video model | Kling integration | video_api.php, frontend |
| 2026-03-09 | UI redesign | Typography + color scale overhaul | CSS, components |

## Related
- [[sandbox-notebookllamalm-nextjs/Sandbox NotebookLM]] (same server: ai-sandbox.oliver.solutions)
- [[olivas/OliVAS]]
