"The Script"

#:package Egodystonic.TinyFFR@0.8.1
using Egodystonic.TinyFFR;
using Egodystonic.TinyFFR.Environment.Input;
using Egodystonic.TinyFFR.Factory.Local;
using Egodystonic.TinyFFR.World;
var fileToLoad = String.Join(" ", Environment.GetCommandLineArgs()[1..]);
using var factory = new LocalTinyFfrFactory();
using var scene = factory.SceneBuilder.CreateScene(BuiltInSceneBackdrop.Clouds);
using var window = factory.WindowBuilder.CreateWindow(factory.DisplayDiscoverer.Primary!.Value, title: fileToLoad);
using var camera = factory.CameraBuilder.CreateCamera(cameraRange: CameraPlaneConfiguration.CloseRange);
using var renderer = factory.RendererBuilder.CreateRenderer(scene, camera, window);
using var loop = factory.ApplicationLoopBuilder.CreateLoop();
using var loadedAssetData = factory.AssetLoader.LoadAll(fileToLoad);
using var instances = factory.ObjectBuilder.CreateModelInstances(loadedAssetData.Models);
using var sunlight = factory.LightBuilder.CreateDirectionalLight(new Direction(0.3f, -1f, 1f), castsShadows: true);
scene.Add(instances);
scene.Add(sunlight);
using var inspectionController = camera.CreateController<InspectorCameraController>();
inspectionController.SetParametersFromBoundingBox(loadedAssetData.Models.CalculateCombinedBoundingBox());
while (!loop.Input.UserQuitRequested && !loop.Input.KeyboardAndMouse.KeyWasPressedThisIteration(KeyboardOrMouseKey.Escape)) {
	var deltaTime = loop.IterateOnce().AsDeltaTime();
	if (loop.Input.KeyboardAndMouse.KeyWasPressedThisIteration(KeyboardOrMouseKey.MouseLeft)) window.LockCursor = !window.LockCursor;
	inspectionController.AdjustAllViaDefaultControls(loop.Input.KeyboardAndMouse, deltaTime);
	inspectionController.Progress(deltaTime);
	renderer.Render();
}
scene.Remove(sunlight);
scene.Remove(instances);


Code snippet taken from "Inspecting 3D objects (incl. gltf) with a 28-line C# script".