https://github.com/cvipdebug/roblox-outfit-studio
Free desktop clothing editor for Roblox — paint shirts & pants in 2D with a layer-based editor and see your design on a live 3D R6 avatar preview. Built with Python, PyQt6, and OpenGL.
https://github.com/cvipdebug/roblox-outfit-studio
2d-editor 3d-preview clothing-texture desktop-app game-tools image-editor layer-editor open-source opengl outfit-editor pillow pyopengl pyqt6 python r6-avatar roblox roblox-clothing roblox-studio roblox-tools texture-editor
Last synced: 3 months ago
JSON representation
Free desktop clothing editor for Roblox — paint shirts & pants in 2D with a layer-based editor and see your design on a live 3D R6 avatar preview. Built with Python, PyQt6, and OpenGL.
- Host: GitHub
- URL: https://github.com/cvipdebug/roblox-outfit-studio
- Owner: cvipdebug
- License: mit
- Created: 2026-03-08T07:27:25.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-03-08T12:16:28.000Z (3 months ago)
- Last Synced: 2026-03-08T12:32:49.287Z (3 months ago)
- Topics: 2d-editor, 3d-preview, clothing-texture, desktop-app, game-tools, image-editor, layer-editor, open-source, opengl, outfit-editor, pillow, pyopengl, pyqt6, python, r6-avatar, roblox, roblox-clothing, roblox-studio, roblox-tools, texture-editor
- Language: Python
- Homepage:
- Size: 525 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🎨 Roblox Outfit Studio
A free, open-source **desktop clothing editor** for Roblox — paint shirts and pants in 2D with a full layer-based editor and see your design on a 3D R6 avatar in real time.





---
## ✨ Features
### 🖌️ 2D Clothing Editor
- **Full layer system** — add, delete, duplicate, reorder, lock, hide, and set opacity per layer
- **Blend modes** — Normal, Multiply, Screen, Overlay, Add, Subtract, and more
- **Brush & Eraser** — adjustable size (1–500px), hardness, and opacity with smooth stroke interpolation
- **Non-destructive Transform tool** — move, scale, rotate, and flip imported images with on-canvas handles; nothing is baked until you choose to
- **Fill / Bucket** — configurable tolerance flood fill
- **Eyedropper** — pick any colour from any visible layer
- **Shape tools** — Rectangle, Ellipse, Line
- **Text tool** — system font picker with size control
- **Import images** — PNG, JPG, BMP, WebP as new layers; drag-and-drop supported
- **Undo / Redo** — 100-step history
- **Zoom** — 10% to 1600% with scroll-wheel, keyboard shortcuts, and fit-to-window
- **Snap to grid** — configurable grid size
### 🧍 Real-Time 3D Avatar Preview
- **R6 avatar** — accurate Roblox R6 body proportions (stud-correct dimensions)
- **Live texture sync** — 2D canvas changes appear on the 3D avatar automatically
- **Orbit camera** — left-drag to orbit, right-drag to pan, scroll to zoom
- **Camera presets** — Front, Back, Left, Right, Top, ¾ View
- **Lighting controls** — adjustable ambient and diffuse sliders
- **Ground grid** and **auto-rotate** toggle
### 🎨 Theme System
- 4 built-in themes: **Dark** (default), **Light**, **Neon**, **Ocean**
- Full theme editor with colour pickers for every UI element
- Import / export themes as JSON
### 💾 Project & Export
- Save/load projects as `.outfitproj` (layers + metadata, ZIP-based)
- Export final texture as a Roblox-ready **585×559 PNG**
- Export blank UV template guides
- New canvas from Shirt template, Pants template, or custom size
---
## 🚀 Quick Start
### Requirements
- Python **3.10** or newer
- Any system with OpenGL support (any modern GPU or integrated graphics)
### Run from source
```bash
# 1. Clone
git clone https://github.com/cvipdebug/roblox-outfit-studio.git
cd roblox-outfit-studio
# 2. Create a virtual environment (recommended)
python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS / Linux
source .venv/bin/activate
# 3. Install dependencies
pip install -r requirements.txt
# 4. Launch
python src/main.py
```
### Dependencies
| Package | Purpose |
|---------|---------|
| `PyQt6` | GUI framework |
| `Pillow` | Image loading, blending, export |
| `numpy` | Fast pixel painting |
| `PyOpenGL` | 3D avatar renderer |
| `PyOpenGL_accelerate` | Optional C accelerators |
---
## 📦 Building a Standalone .exe (Windows)
No Python required on the user's machine.
```bash
pip install pyinstaller
python build_dist.py
```
Output goes into `dist/OutfitStudio/` — distribute the whole folder. Users run `OutfitStudio.exe`.
The build script automatically bundles all template PNGs, the app icon, and all required hidden imports for PyQt6 + PyOpenGL.
---
## ⌨️ Keyboard Shortcuts
| Key | Action |
|-----|--------|
| `B` | Brush |
| `E` | Eraser |
| `G` | Fill / Bucket |
| `I` | Eyedropper |
| `R` | Rectangle |
| `C` | Ellipse |
| `L` | Line |
| `T` | Text |
| `V` | Transform |
| `Ctrl+Z` | Undo |
| `Ctrl+Y` | Redo |
| `Ctrl+S` | Save project |
| `Ctrl+E` | Export texture PNG |
| `Ctrl+I` | Import image as layer |
| `Ctrl+Shift+N` | New layer |
| `=` / `-` | Zoom in / out |
| `0` | Fit to window |
| `1` | 100% zoom |
| `Delete` | Clear active layer |
---
## 📐 Roblox Template Reference
| Template | Size | Regions |
|----------|------|---------|
| Shirt | 585 × 559 px | Torso (front/back/sides/top/bottom), Left arm, Right arm |
| Pants | 585 × 559 px | Torso (waistband), Left leg, Right leg |
Exported PNGs match the official Roblox UV layout and can be uploaded directly to Roblox Studio or the Roblox website.
---
## 🗂️ Project Structure
```
roblox-outfit-studio/
├── src/
│ ├── main.py # Entry point
│ ├── core/
│ │ ├── models.py # Layer, CanvasState, LayerTransform, Color
│ │ ├── history.py # Undo/redo stack
│ │ ├── paint_engine.py # All pixel painting operations
│ │ ├── project_io.py # Save/load/export
│ │ └── resources.py # Cross-platform asset path resolver
│ ├── editor/
│ │ └── canvas_widget.py # 2D canvas + Transform tool handles
│ ├── viewer/
│ │ └── gl_widget.py # PyOpenGL 3D R6 avatar renderer
│ └── ui/
│ ├── main_window.py # Main application window
│ ├── layer_panel.py # Layer management panel
│ ├── tool_options.py # Tool options sidebar
│ ├── viewer_controls.py # 3D viewer controls
│ └── theme_manager.py # Theme system + editor dialog
├── assets/
│ ├── icon.ico # App icon (16–256px, all sizes)
│ ├── icon.png # App icon 256px PNG
│ └── templates/
│ ├── shirt_template_default.png
│ └── pants_template_default.png
├── tests/
├── requirements.txt
├── build_dist.py # PyInstaller build script
└── README.md
```
---
## 🤝 Contributing
Pull requests are welcome! Some ideas for future improvements:
- R15 avatar support
- Load actual Roblox `.rbxm` avatar models
- Selection / lasso tool
- GLSL shader rendering for higher visual quality
- Roblox API integration (fetch avatar by username)
- Animation preview (idle, walk cycle)
- macOS `.app` build
---
## 📄 License
MIT License — see [`LICENSE`](LICENSE) for details.
---
## 🙏 Credits
3D avatar preview concept inspired by [SlothX Outfit Viewer](https://github.com/SlothXTheDev/slothxoutfitviewer).