09. Profiles & Settings
← Previous: Reports, CI & Build Check | Next: Writing Custom Rules →
Built-in Platform Profiles
FuzzyOptimizer ships with four tuned platform profiles. Selecting a profile calibrates the health score penalties, platform budget bars, and rule thresholds across the entire toolkit:
| Performance Budget Metric | Mobile (ARM / Mali) | Standalone VR (Quest / Pico) | Desktop Mid (Default) | Desktop High (PC / Console) |
|---|---|---|---|---|
| Max Batches / Draw Calls | 100 | 120 | 350 | 800 |
| Max Visible Triangles | 150,000 | 250,000 | 800,000 | 2,000,000 |
| Max Visible Vertices | 150,000 | 250,000 | 800,000 | 2,000,000 |
| Max Active Materials | 30 | 40 | 80 | 150 |
| Max Texture Memory (VRAM) | 256 MB | 350 MB | 1,024 MB | 2,048 MB |
| Max Texture Resolution | 1024 px | 2048 px | 2048 px | 4096 px |
| Min Shadow Caster Size | 0.6 m | 0.5 m | 0.35 m | 0.2 m |
| Max MeshCollider Triangles | 200 | 250 | 600 | 1,500 |
| Default LOD1 / LOD2 Ratios | 50% / 25% | 50% / 25% | 50% / 25% | 50% / 25% |
Profile Targets
- Mobile: Designed for thermal-constrained mobile devices (phones, low-power tablets).
- Standalone VR: Optimized for fixed refresh rate head-mounted displays (72 Hz, 90 Hz, 120 Hz) where late-latching and framerate stability are critical.
- Desktop Mid: Calibrated for mainstream PC gaming configurations and current mid-tier laptops.
- Desktop High: Scaled for modern high-end PCs and current-generation gaming consoles.
Custom Profile ScriptableObjects
If your project targets specialized hardware (e.g. handheld consoles like Steam Deck or Switch, integrated GPUs, or specific VR headsets), you can create tailored budgets:
- Create the Asset: Right-click in the Project window and select:
Assets > Create > FuzzyOptimizer > Optimization Profile
- Configure Budgets: Inspect the created asset. Set your custom batch, triangle, VRAM, and collider limits.
- Select Rule Threshold Base: Set the Target Platform property on the asset to determine which platform’s rule heuristics apply (for example, set to Mobile for a handheld gaming device).
- Assign in Dashboard Settings: Open the FuzzyOptimizer Settings tab and assign your asset to the Custom profile asset field.
- Activate: Select Custom in the dashboard header dropdown or pass
-fuzzyProfile Customin CI.
Programmatic Profile Access
using FuzzyLogicLabs.FuzzyOptimizer.Editor.Core;using FuzzyLogicLabs.FuzzyOptimizer.Runtime.Core;
// 1. Create a transient default profilevar mobileProfile = OptimizerProfile.CreateDefaultProfile(OptimizerTargetPlatform.Mobile);
// 2. Load the project's assigned custom profilevar customProfile = OptimizerProfiles.Create(OptimizerTargetPlatform.Custom);
// 3. Load a specific profile asset directly from diskvar handheldProfile = OptimizerProfiles.LoadFromPath("Assets/Settings/HandheldProfile.asset");Project Settings & Version Control
FuzzyOptimizer stores project-level configuration inside a clean JSON file:
ProjectSettings/FuzzyOptimizerSettings.jsonCommit This File
Always commit ProjectSettings/FuzzyOptimizerSettings.json to your version control repository (Git, Perforce, Plastic SCM). This ensures ignored false positives, disabled rules, and CI build check thresholds remain synchronized across all team members and build agents.
| Setting | Configuration Location | Default |
|---|---|---|
| Custom Profile Asset | Settings > Target Platform | None |
| Ignored False Positives | Scene Doctor (Right-click issue); Clear all in Settings | None |
| Disabled Rules Registry | Settings > Scene Doctor Rules (Search & toggle) | All 49 rules enabled |
| Hierarchy Issue Badges | Settings > Editor Integration | Enabled |
| Build Check Gate | Settings > Build Check (Enabled, profile, min score, critical flag) | Disabled |
Storage Architecture & File Placement
| File Path / Directory | Content Type | Commit to Git? |
|---|---|---|
Assets/FuzzyOptimizer_Generated/Atlases/ | Packed texture atlases and materials | Yes (if used by scene) |
Assets/FuzzyOptimizer_Generated/Combined/ | Merged static meshes and prefab assets | Yes (if used by scene) |
Assets/FuzzyOptimizer_Generated/HLOD/ | HLOD proxy meshes and LOD groups | Yes (if used by scene) |
Assets/FuzzyOptimizer_Generated/LODs/ | Burst-generated LOD1 and LOD2 meshes | Yes (if used by scene) |
Assets/FuzzyOptimizer_Generated/Decimated/ | Decimated mesh geometry | Yes (if used by scene) |
Assets/FuzzyOptimizer_Generated/Repaired/ | Welded / repaired mesh copies | Yes (if used by scene) |
Assets/FuzzyOptimizer_Generated/Colliders/ | Low-poly collision proxy meshes | Yes (if used by scene) |
Assets/FuzzyOptimizer_Generated/Billboards/ | Camera billboards and 8-way impostor atlases | Yes (if used by scene) |
ProjectSettings/FuzzyOptimizerSettings.json | Ignores, rule states, build quality gate | YES (Required) |
FuzzyOptimizerReports/ | Exported JSON and HTML audit reports | No (Add to .gitignore) |
Library/FuzzyOptimizer/Sessions/ | Revert journals, asset backups, scene snapshots | No (Local editor cache) |
Library/FuzzyOptimizer/Benchmarks/ | Play Mode benchmark timing data | No (Local editor cache) |
Library/FuzzyOptimizer/Captures/ | Viewport before/after capture imagery | No (Local editor cache) |