{"ScriptPreparationCode":"/*your preparation JavaScript code goes here\r\nTo execute async code during the script preparation, wrap it as function globalMeasureThatScriptPrepareFunction, example:*/\r\nasync function globalMeasureThatScriptPrepareFunction() {\r\n // This function is optional, feel free to remove it.\r\n // await someThing();\r\n}","TestCases":[{"Name":"gmae object","Code":"const gameSceneObject = {\r\n id: \u0022test-scene-1\u0022,\r\n version: 1.2,\r\n settings: {\r\n gravity: [0, -9.81, 0],\r\n ambientLight: {\r\n color: 0x404040,\r\n intensity: 0.5\r\n },\r\n physicsIterations: 6,\r\n maxEntities: 1000\r\n },\r\n entities: [\r\n {\r\n id: \u0022ground\u0022,\r\n transform: {\r\n position: [0, -0.5, 0],\r\n rotation: [0, 0, 0, 1], // Quaternion\r\n scale: [1, 1, 1]\r\n },\r\n components: {\r\n geometry: {\r\n type: \u0022box\u0022,\r\n width: 100,\r\n height: 1,\r\n depth: 100\r\n },\r\n material: {\r\n type: \u0022standard\u0022,\r\n color: 0x808080,\r\n roughness: 0.8,\r\n metalness: 0.2,\r\n map: null\r\n },\r\n physics: {\r\n type: \u0022static\u0022,\r\n mass: 0,\r\n colliders: [\r\n {\r\n type: \u0022box\u0022,\r\n width: 100,\r\n height: 1,\r\n depth: 100,\r\n offset: [0, 0, 0]\r\n }\r\n ]\r\n },\r\n tags: [\u0022ground\u0022, \u0022static\u0022, \u0022environment\u0022]\r\n }\r\n },\r\n // Multiple dynamic objects\r\n ...Array(50).fill(0).map((_, i) =\u003E ({\r\n id: \u0060dynamic-box-${i}\u0060,\r\n transform: {\r\n position: [\r\n Math.sin(i * 0.1) * 20,\r\n 5 \u002B (i % 10),\r\n Math.cos(i * 0.1) * 20\r\n ],\r\n rotation: [Math.random(), Math.random(), Math.random(), Math.random()],\r\n scale: [1, 1, 1]\r\n },\r\n components: {\r\n geometry: {\r\n type: \u0022box\u0022,\r\n width: 1 \u002B Math.random(),\r\n height: 1 \u002B Math.random(),\r\n depth: 1 \u002B Math.random()\r\n },\r\n material: {\r\n type: \u0022standard\u0022,\r\n color: Math.floor(Math.random() * 0xFFFFFF),\r\n roughness: Math.random(),\r\n metalness: Math.random(),\r\n map: null\r\n },\r\n physics: {\r\n type: \u0022dynamic\u0022,\r\n mass: 1 \u002B Math.random() * 10,\r\n linearDamping: 0.01,\r\n angularDamping: 0.01,\r\n colliders: [\r\n {\r\n type: \u0022box\u0022,\r\n width: 1 \u002B Math.random(),\r\n height: 1 \u002B Math.random(),\r\n depth: 1 \u002B Math.random(),\r\n offset: [0, 0, 0]\r\n }\r\n ]\r\n },\r\n tags: [\u0022dynamic\u0022, \u0022interactive\u0022, i % 2 === 0 ? \u0022group-a\u0022 : \u0022group-b\u0022]\r\n }\r\n })),\r\n // Character\r\n {\r\n id: \u0022player\u0022,\r\n transform: {\r\n position: [0, 2, 0],\r\n rotation: [0, 0, 0, 1],\r\n scale: [1, 1, 1]\r\n },\r\n components: {\r\n geometry: {\r\n type: \u0022capsule\u0022,\r\n radius: 0.5,\r\n height: 1.5\r\n },\r\n material: {\r\n type: \u0022standard\u0022,\r\n color: 0x3366FF,\r\n roughness: 0.5,\r\n metalness: 0.2\r\n },\r\n physics: {\r\n type: \u0022kinematic\u0022,\r\n mass: 70,\r\n colliders: [\r\n {\r\n type: \u0022capsule\u0022,\r\n radius: 0.5,\r\n height: 1.5,\r\n offset: [0, 0, 0]\r\n }\r\n ],\r\n controller: {\r\n type: \u0022character\u0022,\r\n jumpHeight: 2.0,\r\n movementSpeed: 5.0,\r\n turnSpeed: 120\r\n }\r\n },\r\n tags: [\u0022player\u0022, \u0022character\u0022, \u0022controllable\u0022],\r\n scripts: [\r\n {\r\n name: \u0022playerController\u0022,\r\n parameters: {\r\n maxHealth: 100,\r\n stamina: 100,\r\n abilities: [\u0022jump\u0022, \u0022sprint\u0022, \u0022interact\u0022]\r\n }\r\n }\r\n ]\r\n }\r\n }\r\n ],\r\n lights: [\r\n {\r\n type: \u0022directional\u0022,\r\n intensity: 1.0,\r\n color: 0xFFFFFF,\r\n position: [10, 20, 10],\r\n castShadow: true,\r\n shadowMapSize: 2048\r\n },\r\n {\r\n type: \u0022point\u0022,\r\n intensity: 0.8,\r\n color: 0xFF9900,\r\n position: [-5, 3, 2],\r\n distance: 15,\r\n decay: 2\r\n }\r\n ],\r\n metadata: {\r\n name: \u0022Test Scene\u0022,\r\n author: \u0022Engine Developer\u0022,\r\n createdAt: \u00222025-03-27T10:15:30Z\u0022,\r\n tags: [\u0022test\u0022, \u0022benchmark\u0022, \u0022development\u0022],\r\n custom: {\r\n difficulty: \u0022medium\u0022,\r\n timeLimit: 300,\r\n objectives: [\r\n { id: \u0022obj1\u0022, description: \u0022Collect all items\u0022, completed: false },\r\n { id: \u0022obj2\u0022, description: \u0022Reach the exit\u0022, completed: false }\r\n ]\r\n }\r\n }\r\n};\r\nJSON.stringify(gameSceneObject);","IsDeferred":false},{"Name":"second","Code":"const gameConfiguration = {\r\n version: \u00221.5.0\u0022,\r\n engine: {\r\n physics: {\r\n gravity: [0, -9.81, 0],\r\n timeStep: 1/60,\r\n solverIterations: 8,\r\n collisionGroups: {\r\n default: 1,\r\n static: 2,\r\n dynamic: 4,\r\n character: 8,\r\n sensor: 16,\r\n projectile: 32\r\n },\r\n collisionMatrix: {\r\n \u00221\u0022: 63, // default collides with everything\r\n \u00222\u0022: 61, // static collides with everything except static\r\n \u00224\u0022: 59, // dynamic collides with everything except dynamic\r\n \u00228\u0022: 39, // character collides with default, static, dynamic, projectile\r\n \u002216\u0022: 7, // sensor collides with default, static, dynamic\r\n \u002232\u0022: 11 // projectile collides with default, static, character\r\n }\r\n },\r\n rendering: {\r\n resolution: [1920, 1080],\r\n shadows: {\r\n enabled: true,\r\n type: \u0022PCF\u0022,\r\n resolution: 2048,\r\n bias: 0.0005,\r\n darkness: 0.5,\r\n mapSize: 4096\r\n },\r\n postProcessing: {\r\n enabled: true,\r\n effects: {\r\n bloom: {\r\n enabled: true,\r\n threshold: 0.8,\r\n intensity: 0.5,\r\n radius: 0.75\r\n },\r\n ssao: {\r\n enabled: true,\r\n radius: 0.1,\r\n minDistance: 0.0001,\r\n maxDistance: 0.1,\r\n intensity: 1.5\r\n },\r\n toneMappingSettings: {\r\n exposure: 1.0,\r\n whitePoint: 1.0,\r\n type: \u0022ACES\u0022\r\n }\r\n }\r\n }\r\n },\r\n audio: {\r\n channels: 32,\r\n spatialAudio: true,\r\n reverb: {\r\n enabled: true,\r\n presets: {\r\n \u0022bathroom\u0022: { decay: 1.5, damping: 0.25, spread: 0.5 },\r\n \u0022hallway\u0022: { decay: 2.5, damping: 0.4, spread: 0.8 },\r\n \u0022cave\u0022: { decay: 4.0, damping: 0.2, spread: 0.9 },\r\n \u0022cathedral\u0022: { decay: 6.0, damping: 0.1, spread: 0.95 }\r\n }\r\n }\r\n }\r\n },\r\n defaultScene: {\r\n ambientLight: {\r\n color: 0x334455,\r\n intensity: 0.2\r\n },\r\n directionalLight: {\r\n color: 0xFFFFEE,\r\n intensity: 1.2,\r\n position: [50, 200, 100],\r\n castShadow: true\r\n },\r\n environment: {\r\n skybox: \u0022default_sky\u0022,\r\n fog: {\r\n enabled: true,\r\n color: 0xAACCFF,\r\n near: 10,\r\n far: 1000\r\n }\r\n },\r\n camera: {\r\n fov: 75,\r\n near: 0.1,\r\n far: 2000,\r\n defaultPosition: [0, 5, 10],\r\n defaultTarget: [0, 0, 0]\r\n }\r\n },\r\n defaultTemplates: {\r\n player: {\r\n components: {\r\n transform: {\r\n position: [0, 1, 0],\r\n rotation: [0, 0, 0, 1],\r\n scale: [1, 1, 1]\r\n },\r\n model: {\r\n mesh: \u0022character_base\u0022,\r\n materials: {\r\n body: \u0022character_material\u0022,\r\n head: \u0022head_material\u0022,\r\n feet: \u0022boots_material\u0022\r\n }\r\n },\r\n physics: {\r\n type: \u0022character\u0022,\r\n mass: 70,\r\n height: 1.8,\r\n radius: 0.35,\r\n stepHeight: 0.35,\r\n jumpForce: 8\r\n },\r\n input: {\r\n type: \u0022humanoid\u0022,\r\n moveSpeed: 5,\r\n sprintMultiplier: 1.5,\r\n turnSpeed: 180,\r\n jumpCooldown: 0.3,\r\n airControl: 0.3\r\n },\r\n health: {\r\n max: 100,\r\n current: 100,\r\n regenRate: 1,\r\n regenDelay: 5\r\n },\r\n inventory: {\r\n slots: 20,\r\n startingItems: [\r\n { id: \u0022health_potion\u0022, count: 3 },\r\n { id: \u0022basic_sword\u0022, count: 1, equipped: true },\r\n { id: \u0022leather_armor\u0022, count: 1, equipped: true }\r\n ]\r\n }\r\n }\r\n },\r\n enemy: {\r\n components: {\r\n transform: {\r\n position: [0, 0, 0],\r\n rotation: [0, 0, 0, 1],\r\n scale: [1, 1, 1]\r\n },\r\n model: {\r\n mesh: \u0022enemy_base\u0022,\r\n materials: {\r\n body: \u0022enemy_material\u0022\r\n }\r\n },\r\n physics: {\r\n type: \u0022character\u0022,\r\n mass: 80,\r\n height: 2.0,\r\n radius: 0.4,\r\n stepHeight: 0.4\r\n },\r\n ai: {\r\n type: \u0022patrol\u0022,\r\n detectionRadius: 15,\r\n attackRange: 2,\r\n patrolPath: [\r\n [10, 0, 10],\r\n [10, 0, -10],\r\n [-10, 0, -10],\r\n [-10, 0, 10]\r\n ],\r\n behavior: {\r\n idle: { duration: [2, 5], probability: 0.2 },\r\n patrol: { speed: 2, probability: 0.6 },\r\n chase: { speed: 5, maxDuration: 10 },\r\n attack: { damage: 10, cooldown: 1.5, animations: [\u0022attack1\u0022, \u0022attack2\u0022] }\r\n }\r\n },\r\n health: {\r\n max: 120,\r\n current: 120,\r\n regenRate: 0.5,\r\n regenDelay: 10\r\n }\r\n }\r\n },\r\n item: {\r\n components: {\r\n transform: {\r\n position: [0, 0, 0],\r\n rotation: [0, 0, 0, 1],\r\n scale: [1, 1, 1]\r\n },\r\n model: {\r\n mesh: \u0022item_pickup\u0022,\r\n materials: {\r\n base: \u0022item_material\u0022\r\n }\r\n },\r\n physics: {\r\n type: \u0022dynamic\u0022,\r\n mass: 5,\r\n shape: \u0022box\u0022,\r\n dimensions: [0.5, 0.5, 0.5]\r\n },\r\n interaction: {\r\n type: \u0022pickup\u0022,\r\n prompt: \u0022Press E to pick up\u0022,\r\n radius: 1.5,\r\n highlightColor: 0xFFFF00\r\n }\r\n }\r\n }\r\n },\r\n userPreferences: {\r\n graphics: {\r\n quality: \u0022high\u0022,\r\n antialiasing: \u0022TAA\u0022,\r\n shadows: \u0022medium\u0022,\r\n textures: \u0022high\u0022,\r\n effects: \u0022medium\u0022,\r\n vsync: true,\r\n fov: 75\r\n },\r\n audio: {\r\n master: 0.8,\r\n music: 0.6,\r\n sfx: 0.9,\r\n voice: 1.0,\r\n ambient: 0.7\r\n },\r\n gameplay: {\r\n difficulty: \u0022normal\u0022,\r\n tutorials: true,\r\n invertY: false,\r\n autoAim: false,\r\n cameraShake: true,\r\n damageFeedback: true,\r\n language: \u0022en\u0022,\r\n subtitles: false\r\n },\r\n controls: {\r\n keyboard: {\r\n moveForward: \u0022W\u0022,\r\n moveBackward: \u0022S\u0022,\r\n moveLeft: \u0022A\u0022,\r\n moveRight: \u0022D\u0022,\r\n jump: \u0022Space\u0022,\r\n sprint: \u0022Shift\u0022,\r\n interact: \u0022E\u0022,\r\n inventory: \u0022I\u0022,\r\n pause: \u0022Escape\u0022,\r\n attack: \u0022Mouse0\u0022,\r\n block: \u0022Mouse1\u0022,\r\n ability1: \u0022Q\u0022,\r\n ability2: \u0022F\u0022,\r\n ability3: \u0022R\u0022\r\n },\r\n gamepad: {\r\n invertXAxis: false,\r\n invertYAxis: false,\r\n vibration: true,\r\n deadzone: 0.1,\r\n sensitivity: 0.8\r\n },\r\n mouse: {\r\n sensitivity: 0.5,\r\n smoothing: 0.2,\r\n acceleration: false\r\n }\r\n }\r\n }\r\n};\r\nJSON.stringify(gameConfiguration);","IsDeferred":false}]}