Skip to content

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 MetricMobile (ARM / Mali)Standalone VR (Quest / Pico)Desktop Mid (Default)Desktop High (PC / Console)
Max Batches / Draw Calls100120350800
Max Visible Triangles150,000250,000800,0002,000,000
Max Visible Vertices150,000250,000800,0002,000,000
Max Active Materials304080150
Max Texture Memory (VRAM)256 MB350 MB1,024 MB2,048 MB
Max Texture Resolution1024 px2048 px2048 px4096 px
Min Shadow Caster Size0.6 m0.5 m0.35 m0.2 m
Max MeshCollider Triangles2002506001,500
Default LOD1 / LOD2 Ratios50% / 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:

  1. Create the Asset: Right-click in the Project window and select:
    Assets > Create > FuzzyOptimizer > Optimization Profile
  2. Configure Budgets: Inspect the created asset. Set your custom batch, triangle, VRAM, and collider limits.
  3. 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).
  4. Assign in Dashboard Settings: Open the FuzzyOptimizer Settings tab and assign your asset to the Custom profile asset field.
  5. Activate: Select Custom in the dashboard header dropdown or pass -fuzzyProfile Custom in CI.

Programmatic Profile Access

using FuzzyLogicLabs.FuzzyOptimizer.Editor.Core;
using FuzzyLogicLabs.FuzzyOptimizer.Runtime.Core;
// 1. Create a transient default profile
var mobileProfile = OptimizerProfile.CreateDefaultProfile(OptimizerTargetPlatform.Mobile);
// 2. Load the project's assigned custom profile
var customProfile = OptimizerProfiles.Create(OptimizerTargetPlatform.Custom);
// 3. Load a specific profile asset directly from disk
var handheldProfile = OptimizerProfiles.LoadFromPath("Assets/Settings/HandheldProfile.asset");

Project Settings & Version Control

FuzzyOptimizer stores project-level configuration inside a clean JSON file:

ProjectSettings/FuzzyOptimizerSettings.json

Commit 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.

SettingConfiguration LocationDefault
Custom Profile AssetSettings > Target PlatformNone
Ignored False PositivesScene Doctor (Right-click issue); Clear all in SettingsNone
Disabled Rules RegistrySettings > Scene Doctor Rules (Search & toggle)All 49 rules enabled
Hierarchy Issue BadgesSettings > Editor IntegrationEnabled
Build Check GateSettings > Build Check (Enabled, profile, min score, critical flag)Disabled

Storage Architecture & File Placement

File Path / DirectoryContent TypeCommit to Git?
Assets/FuzzyOptimizer_Generated/Atlases/Packed texture atlases and materialsYes (if used by scene)
Assets/FuzzyOptimizer_Generated/Combined/Merged static meshes and prefab assetsYes (if used by scene)
Assets/FuzzyOptimizer_Generated/HLOD/HLOD proxy meshes and LOD groupsYes (if used by scene)
Assets/FuzzyOptimizer_Generated/LODs/Burst-generated LOD1 and LOD2 meshesYes (if used by scene)
Assets/FuzzyOptimizer_Generated/Decimated/Decimated mesh geometryYes (if used by scene)
Assets/FuzzyOptimizer_Generated/Repaired/Welded / repaired mesh copiesYes (if used by scene)
Assets/FuzzyOptimizer_Generated/Colliders/Low-poly collision proxy meshesYes (if used by scene)
Assets/FuzzyOptimizer_Generated/Billboards/Camera billboards and 8-way impostor atlasesYes (if used by scene)
ProjectSettings/FuzzyOptimizerSettings.jsonIgnores, rule states, build quality gateYES (Required)
FuzzyOptimizerReports/Exported JSON and HTML audit reportsNo (Add to .gitignore)
Library/FuzzyOptimizer/Sessions/Revert journals, asset backups, scene snapshotsNo (Local editor cache)
Library/FuzzyOptimizer/Benchmarks/Play Mode benchmark timing dataNo (Local editor cache)
Library/FuzzyOptimizer/Captures/Viewport before/after capture imageryNo (Local editor cache)