Updates

Progress, a slice at a time.

Every slice that lands is written up in the plan with what it does, how it was checked, and what's next. These are those write-ups, newest first.

Phase 6 · Slice 63 Shader Graph .shadergraph files (Shader Graph 10 and later: multi-JSON) are project shaders named "Shader Graphs/", as Unity names them (materials by GUID, Shader.Find, Resources). tassix_shaderlab::graph translates one… Phase 6 · Slice 62 Image effects (OnRenderImage) Without a scriptable pipeline, a screen camera's scripts' OnRenderImage(source, destination) run after its other callbacks, in component order, each given the last one's result (ImageEffects, CoreModule). They're… Phase 6 · Slice 61 Graphics.Blit with a material Graphics.Blit(source, dest, material, pass) into a render texture runs a project shader: the source becomes the material's _MainTex (as Unity sets it), and the pass (or every pass,… Phase 6 · Slice 60 URP renderer features drawn Each camera's recorded render graph goes to the renderer (CameraSetGraph, API 55): the textures its passes create, and each full-screen draw as a pass with a material of… Phase 6 · Slice 59 URP renderer features (recording) The project's render pipeline asset loads as an object (the current quality level's, else the graphics settings'), after its scripts compile, with its renderer data and their features… Phase 6 · Slice 58 The DualSense over HID crates/script_host/src/dualsense.rs reads DualSense and DualSense Edge controllers over HID (hidapi; its pure-Rust backend on Windows) and drives them: input reports over USB (0x01) and Bluetooth (0x31, after reading… Phase 6 · Slice 57 Rumble Gamepad.SetMotorSpeeds, PauseHaptics, ResumeHaptics and ResetHaptics (IDualMotorRumble, IHaptics), and InputSystem's own Pause/Resume/ResetHaptics for every device. Speeds stay until set again; pausing stops the motors… Phase 6 · Slice 57 The template’s quad shader The platformer template's DrawQuadSprite plugin (its QuadTextureMatPropBlock material draws the interaction prompt, the E keycap over a box in reach, through Graphics.RenderMesh and a MaterialPropertyBlock; not the… Phase 6 · Slice 56 What a DualSense found in the platformer template Played with a DualSense: its input reaches the game (sticks, buttons, triggers). Dashing threw: the spawned player's dash curves had no keys list. Instantiate deep-copied [Serializable] classes without… Phase 6 · Slice 55 Real controllers crates/script_host/src/controllers.rs reads connected controllers with gilrs (XInput and Windows.Gaming.Input on Windows, evdev, IOKit) once a frame for managed code (ControllersFetch, API 52): a controller whose layout… Phase 6 · Slice 54 Joysticks and XR controllers Joystick as Unity's base layout: trigger (PrimaryTrigger|PrimaryAction|Submit) and stick (Primary2DMotion); hatswitch and twist are null, as they come with specific joysticks' layouts. current and all. TrackedDevice… Phase 6 · Slice 53 Control usages Controls carry Unity's usages (InputControl.usages, InternedString), recorded from Unity's keyboard, mouse, gamepad and touchscreen layouts: Escape Back|Cancel, Enter Submit (not numpad Enter), the Shift/Alt/Ctrl/Meta… Phase 6 · Slice 52 DefaultInputActions DefaultInputActions with Unity's surface (asset, Player and UI with their actions, Get/Enable/Disable/SetCallbacks, the five scheme properties, the collection interfaces): the package's map and action IDs, types… Phase 6 · Slice 51 Model instances Unity's file IDs for a model's objects, worked out from the template's prefabs and a Unity 6 probe: every object hashes its type and path, the root being… Phase 6 · Slice 50 Visual Scripting, custom input composites, layer overrides Both corpus projects that needed Visual Scripting only had its using (no graphs): dotnet/Unity.VisualScripting.Core (referenced by projects whose manifest lists com.unity.visualscripting) has its C# surface: Variables… Phase 6 · Slice 49 Skinning and clips in models Mesh.boneWeights and bindposes (BoneWeight, BoneWeight1; kept as written, unsorted and unnormalized, as Unity keeps them). SkinnedMeshRenderer deforms its mesh after LateUpdate (CPU skinning into a copy it draws):… Phase 6 · Slice 48 Cinemachine dotnet/Unity.Cinemachine is Cinemachine 3 (its assembly and namespace); dotnet/Cinemachine builds the same sources with CINEMACHINE_2 as Cinemachine 2's assembly and namespace (field names differ where 2's scripts use… Phase 6 · Slice 47 Corpus projects that played but drew wrong Corpus screenshots (frame 300, --screenshot) showed two projects with clean logs drawing nothing useful: BossIsComing a flat sky, unity-third-person an empty scene. BossIsComing builds its office from code… Phase 6 · Slice 46 The corpus’s next small APIs Checked by a new corpus_apis_3 scenario recorded in 6000.3 (the conformance project gains Unity's terrain and terrain physics modules): GeometryUtility (CalculateFrustumPlanes from cameras and matrices, in Unity's order… Phase 6 · Slice 45 A third round of corpus projects Fourteen more MIT projects in corpus/projects.json (37 in all): an RTS tutorial, a third-person controller, an FPS maze, gravity racing, a roguelike, two tower defenses, a 3D platformer… Phase 6 · Slice 44 Lights, shadows and GrabPass in project shaders The custom shaders' per-camera buffer carries the view's own shading data: the main light's shadow matrix, strength, softness, biases and fade distance, and the point and spot lights… Phase 6 · Slice 43 Dragging to reorder Unity's animated dragger does take pointer events sent through a panel, so the ui_toolkit_list_drag scenario records it: canStartDrag on the press (its id, selected ids and the item's… Phase 6 · Slice 42 A TextMeshPro build per project version TextMeshPro 3.2 (Unity 2023.2 and later) made the first UVs Vector4s (TMP_MeshInfo.uvs0, TMP_Vertex.uv); scripts written for earlier versions say Vector2[] and don't compile (or run) against the other.… Phase 6 · Slice 41 Lighting includes Tassix's own Lighting.cginc, UnityLightingCommon.cginc and AutoLight.cginc (UnityLight, UnityGI, SurfaceOutput, Lambert and Blinn-Phong lighting, _SpecColor, the shadow and attenuation macros at 1), ShadeSH9 and the…