# Hardware Profile JSON JackAILocal SaaS Builder accepts an optional hardware profile JSON object. If the field is empty, the selected sample profile is used. ## Minimum fields ```json { "os": "windows", "cpu_threads": 8, "ram_gb": 16, "vram_gb": 0, "gpu_name": "CPU-only office laptop", "disk": "USB 3.2 SSD", "usb_storage_gb": 128 } ``` ## RTX 3090 example ```json { "os": "windows", "cpu_threads": 24, "ram_gb": 64, "vram_gb": 24, "gpu_name": "NVIDIA RTX 3090", "disk": "USB-C NVMe", "usb_storage_gb": 512 } ``` ## Optional whichllm block ```json { "os": "windows", "cpu_threads": 24, "ram_gb": 64, "vram_gb": 24, "gpu_name": "NVIDIA RTX 3090", "disk": "USB-C NVMe", "usb_storage_gb": 512, "whichllm": { "source": "optional", "top_model": "Qwen/Qwen3.6-27B" } } ``` ## Selection behavior The current hackathon Gradio app is rule-based. It does not perform a live hardware scan inside the browser. The selected sample profile or pasted JSON is normalized, then compared against the signed model catalog. The standard pack defaults to a practical laptop baseline up to 9B. Power profiles can select compatible models up to the hackathon limit of 32B.