Skip to content

Lynthar/Tidycraft

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

31 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽฎ Tidycraft

Game Asset Management & Analysis Tool

Tauri Rust React License

English | ็ฎ€ไฝ“ไธญๆ–‡

A cross-platform desktop application for scanning, browsing, and analyzing game project assets.


๐Ÿ“ธ Screenshots

Screenshots coming soon...

โš ๏ธ Path & Naming Best Practices

Important: For optimal compatibility with 3D model preview and asset loading, please follow these guidelines.

โœ… Recommended

  • Use ASCII characters for file and folder names
  • Use hyphens - or underscores _ instead of spaces
  • Keep paths short and simple
  • Place texture files in the same directory as the model file

Good Examples:

/Projects/my-game/models/character_model.fbx
/Projects/my-game/textures/diffuse_map.png

โŒ Avoid

Issue Example Problem
Spaces in names floor color.png May fail to load
Special characters model[v2].fbx Breaks path parsing
Non-ASCII paths ๆจกๅž‹/character.fbx Encoding issues
Very long paths >200 characters System limitations

Why These Limitations?

Some 3D model formats (FBX, OBJ, DAE) embed texture paths internally. When these paths contain special characters, the Tauri asset protocol may not resolve them correctly. This is a known platform limitation.


โœจ Features

๐Ÿ” Asset Scanning

  • Fast async scanning with real-time progress and cancellation
  • Project type detection โ€” Unity, Unreal, Godot, or generic
  • Directory tree visualization with file counts and sizes
  • Unity .meta file parsing โ€” extracts GUIDs for asset tracking

๐Ÿท๏ธ Tag System

  • Create custom color-coded tags
  • Tag single or multiple assets at once
  • Filter assets by tags (single or multi-select)
  • Tags persist across sessions

๐Ÿ“Š Metadata Extraction

Asset Type Extracted Info
Images Resolution, alpha channel, format
3D Models Vertices, faces, materials
Audio Duration, sample rate, channels, bit depth

๐Ÿ–ผ๏ธ Asset Browser

  • Thumbnail preview with disk caching
  • Virtual scrolling โ€” handles 10,000+ files smoothly
  • Search by filename or path
  • Filter by asset type
  • 3D model preview with orbit controls

๐Ÿ“‹ Rule-Based Analysis

Category Checks
Naming Forbidden chars, Chinese chars, prefix, case style
Textures Power-of-two, max size
Models Vertex/face/material limits
Audio Sample rate, duration
Duplicates SHA256-based detection

๐Ÿ“ฆ Supported Formats

Category Formats
Textures PNG, JPG/JPEG, TGA, BMP, GIF
3D Models glTF, GLB, FBX, OBJ (+MTL), DAE
Audio WAV, MP3, OGG
Other Scripts, Materials, Prefabs, Scenes

๐Ÿ› ๏ธ Tech Stack

Layer Technology
Framework Tauri 2.0
Backend Rust
Frontend React 18 + TypeScript
Styling Tailwind CSS
State Zustand
3D Rendering Three.js
Virtualization @tanstack/react-virtual

Rust Crates

image ยท gltf ยท tobj ยท symphonia ยท sha2 ยท walkdir ยท toml ยท git2 ยท rayon


๐Ÿš€ Getting Started

Prerequisites

Installation

# Clone repository
git clone https://github.com/AquaStarfish/Tidycraft.git
cd tidycraft

# Install dependencies
pnpm install

# Run in development mode
pnpm tauri dev

# Build for production
pnpm tauri build

๐Ÿ“– Usage

  1. Open Project โ€” Click "Open Project" and select your game project folder
  2. Browse Assets โ€” Navigate the directory tree, search, and filter
  3. Preview Assets โ€” Click any asset to view details and preview
  4. Tag Assets โ€” Right-click to add tags for organization
  5. Run Analysis โ€” Click "Run Analysis" to check for issues
  6. Review Issues โ€” Switch to Issues tab to see problems

โš™๏ธ Configuration

Create a tidycraft.toml in your project root:

[naming]
check_forbidden_chars = true
forbidden_chars = ['<', '>', ':', '"', '|', '?', '*']
check_chinese = true
check_prefix = false
required_prefix = "tex_"

[texture]
check_pot = true
check_max_size = true
max_width = 4096
max_height = 4096

[model]
check_vertex_count = true
max_vertices = 100000
check_face_count = true
max_faces = 50000

[audio]
check_sample_rate = true
allowed_sample_rates = [44100, 48000]
check_duration = true
max_duration_secs = 300.0

[duplicate]
enabled = true

๐Ÿ“ Project Structure

tidycraft/
โ”œโ”€โ”€ src/                    # React frontend
โ”‚   โ”œโ”€โ”€ components/         # UI components
โ”‚   โ”œโ”€โ”€ stores/             # Zustand state
โ”‚   โ”œโ”€โ”€ types/              # TypeScript types
โ”‚   โ””โ”€โ”€ lib/                # Utilities
โ”œโ”€โ”€ src-tauri/              # Rust backend
โ”‚   โ””โ”€โ”€ src/
โ”‚       โ”œโ”€โ”€ scanner.rs      # Asset scanning
โ”‚       โ”œโ”€โ”€ analyzer.rs     # Rule engine
โ”‚       โ”œโ”€โ”€ thumbnail.rs    # Thumbnail generation
โ”‚       โ”œโ”€โ”€ tags.rs         # Tag management
โ”‚       โ””โ”€โ”€ lib.rs          # Tauri commands
โ””โ”€โ”€ docs/                   # Documentation

๐Ÿ—บ๏ธ Roadmap

  • Dependency analysis & reference tracking
  • Statistics dashboard & reports
  • Git integration (change detection)
  • Incremental scanning
  • Batch rename operations
  • Custom rule scripting
  • Export reports (JSON, CSV, HTML)

๐Ÿ“„ License

MIT


Made with โค๏ธ for game developers

About

A game asset management tool built with Tauri

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors