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.
UI Toolkit stage 2 (binding and collections)
Unity.Properties: PropertyPath (names, indices, keys; combine, append, pop, sub-paths), PropertyContainer get/set by the property bag rules (public and [SerializeField] fields, [CreateProperty] members; a dictionary key…
UI Toolkit (stage 1 of 3, for UnityChess)
UnityEngine.UIElements in the core module: VisualElement (hierarchy and content containers, classes, names, Q/Query and UQueryBuilder, enabled state, pseudo-states, schedule, layout, worldBound, contentRect, coordinate…
Corpus run after the UI Toolkit slices
All 23 projects play as before (no regressions); 22 compile. What's left, by cause: Project-side (Unity shows the same): Tower-Defense-Game's two prefab variants are of store prefabs that…
The Skybox component
A camera's Skybox component draws its material's sky behind that camera (render texture cameras too): the renderer takes per-view sky overrides for the sky pass and its uniforms;…
Serialization callbacks and corpus warnings
ISerializationCallbackReceiver runs where Unity runs it (serialization_callbacks, 6000.3): after loaded fields (nested first), around Instantiate, in JsonUtility. Odin's SerializedMonoBehaviour fields now load through…
CompositeCollider2D
Colliders marked usedByComposite (compositeOperation Merge) hand their outlines to the CompositeCollider2D on their Rigidbody2D and stop colliding themselves. The composite unions them with i_overlay (MIT/Apache-2.0)…
Immediate drawing into render textures
GL, Graphics.DrawTexture and DrawMeshNow draw into RenderTexture.active (or SetRenderTarget's texture) when one is set: their triangles go to the native side as each call ends and replay in…
Render textures
Render textures are drawn into: cameras with a targetTexture render before the screen's (each on its own, with the texture's aspect and the background's alpha), Graphics.Blit (its own…
The grown corpus
All nine new projects compile and load (23 in the corpus; 21 compile, the same two as before don't). Closed on the way: Unity's second UnityEngine.UI.dll GUID; Photoshop…
Sprite sheets, UI animation, max texture size
SwampAttack's props floated in the sky: sprite sheets (Sprite Mode Multiple) weren't imported at all, so every sprite of a sheet was the whole texture. sprite_sheets (6000.3): a…
Corpus: binary files, load order, IMGUI, tilemaps
Unity's binary serialization (crates/unity_yaml/src/binary.rs): scenes, prefabs, assets and project settings saved as "Force Binary" (or "Mixed", Unity's default before 2019), format versions 9 to 22, read through their…
WheelCollider
wheel_colliders (6000.3, the Vehicles module added to the conformance project): a wheel's defaults, sprung masses, and a 1000 kg car settling, accelerating on rear-wheel torque, braking and turning,…
TextMesh
text_meshes (recorded in 6000.3): TextMesh's defaults and the bounds its text gives its renderer. What Unity measures: the text's box, not its glyphs: each character's rounded advance at…
Binding compatibility
cargo xtask api-coverage also writes docs/compatibility/api-bindings.md: every public member of a Unity type Tassix has, checked by the signature compiled code binds to (declaring type or a base,…
Corpus: scenes and Json.NET
A project without build scenes plays one of its scenes (a menu or main scene when there is one, logged; Unity's editor would play the last scene open,…
Vertex colors
Meshes carry vertex colors to the GPU: Mesh.colors/colors32 upload (a new mesh_set_colors, native API 40) when there's one per vertex, into MeshData::colors (RGBA8, empty for white). Every vertex…
Unity 6000.3 baseline, lines and trails
Recordings move to Unity 6000.3.27f1, the 6.x LTS (conformance/UNITY_VERSION; xtask also finds editors in the Hub's custom install location). All 56 scenarios re-recorded. What 6000.3 changed: three new…
The project corpus
corpus/projects.json pins 14 MIT-licensed Unity projects (Unity 5.3 to 6000.2); cargo xtask corpus fetches them into target/corpus, plays each headless for 300 frames and ranks what their logs…
Common API gaps
3D physics (physics_queries): SphereCastAll/BoxCastAll/CapsuleCastAll on PhysX's sweepMultiple and their NonAlloc forms, OverlapBox/OverlapCapsule NonAlloc, the CapsuleCast overload without a hit; initial overlaps…
MonoBehaviour.Invoke
Invoke, InvokeRepeating, CancelInvoke (all or by name) and IsInvoking (Scripting/DelayedCalls.cs), from a new invoke scenario recorded in Unity: calls run after Update (after the coroutines) once due before…
Documentation and the compatibility matrix
docs/: an index, getting started, Unity projects (what is read, how scripts compile, porting checks), packaging (the folder, cooking, NativeAOT with its numbers and limits), agents and MCP,…
NativeAOT builds
dotnet/Tassix.Native: the managed runtime published with NativeAOT as one shared library. Bootstrap's [UnmanagedCallersOnly] entry points carry export names (tassix_initialize, tassix_frame...), exported from the…
Packaged players
L3 was already in place (Phase 4 slice 10): plugins built against Unity's module assemblies bind to Tassix through Roslyn-generated type-forwarding facades, covered by an e2e fixture plugin.…
Splash screen with the Tassix logo
A windowed player (development or packaged) opens its window first: the render thread draws the splash on its own (every 16 ms while no game frame comes) while…