You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Preview and eventually convert VARC fonts without flattening tens of thousands of component programs into independent complete outlines. Measure noto-cjk-varco first, then design shared component geometry and lightweight root-program residency from evidence.
This is the Source-Han-scale component-native path. The current flat SourceHanSans-VF.ttf has 65,535 glyphs, zero glyf composites, and no VARC table, so it cannot answer VARC ownership or deduplication questions.
VARC tables remain authoritative during binary preview.
A future explicit conversion may map VARC programs into Shift's reserved glyph-local-axis and variable-component semantics, but must never silently flatten them.
Shared component geometry and root programs are derived/canonical according to their owning path; GPU/cache data is never authored truth.
Measurement spike
Use notofonts/noto-cjk-varco v0.003 and independently inspect with fontTools plus HarfBuzz/skrifa rendering oracles.
Record:
root glyph count;
component-program count and nesting depth;
unique referenced component glyphs;
component occurrence fanout;
glyph-local axes, conditions, axis inheritance/reset and transform variation usage;
unique geometry bytes;
root-program bytes;
geometry duplication produced by the current fixed 256-root page compiler;
complete shared-dependency working set;
cold direct-preview compile/pack/upload time;
random glyph and variable-location rendering parity.
Do not approve ownership/sharding names before this report exists.
Expected architecture to test
Root pages contain lightweight component programs and glyph mappings.
Shared component geometry is represented once rather than repeated in every root page closure.
Root programs and shared geometry can be cached/replaced independently.
A coherent presented frame references one version-compatible root-program/geometry set.
Normal scrolling after readiness performs no source geometry acquisition.
Variable location updates evaluate decomposed transforms, local axes, conditions and inheritance without flattening or geometry upload.
The earlier suggestion to activate only visible dependencies and fill the rest in the background conflicts with the current no-scroll-acquisition Grid invariant. Prefer complete residency of all lightweight programs and unique shared geometry if measurement shows it is cheap; otherwise stop for an explicit product decision rather than silently reintroducing placeholders or scroll-time loads.
PR slices
Fixture analyzer and rendering oracle
checked/pinned external fixture provenance;
table/program/duplication report;
sampled and random rendering parity.
Direct read-only VARC preview
binary table-backed directory and variable locations;
root programs plus shared geometry in the native preview path;
no authored Shift conversion.
Shared Grid residency
independently replaceable/cached root and geometry units;
coherent frame activation;
complete-residency and memory measurements.
Shift semantic activation and explicit conversion
only after names and legal semantics for glyph-local axes, inheritance/reset, conditions and variable transforms are approved;
map into the reserved Shift authoring surface;
preservation and independent export/round-trip goldens.
Acceptance criteria
The measurement report quantifies reuse before implementation architecture is selected.
Binary preview renders VARC without flattening.
Shared geometry is not duplicated once per root page unless measured evidence explicitly justifies it.
Random glyph/location rendering matches HarfBuzz/skrifa within an approved image/geometry tolerance.
Scroll and axis updates obey the coherent-frame and no-source-acquisition invariants.
Any Shift conversion preserves component programs, local axes, conditions, inheritance and decomposed transform semantics or rejects unsupported constructs explicitly.
Non-goals
Inferring components from flat glyf outlines.
Using the flat Source Han VF as evidence for VARC storage.
Freezing shared-geometry/shard/cache API names before measurement.
Combining preview, GPU residency and editable Shift conversion in one PR.
Related: #143, #154, #172, and the local Research - CJK Authored-Source Fixtures and VARC Smart Components.
Goal
Preview and eventually convert VARC fonts without flattening tens of thousands of component programs into independent complete outlines. Measure
noto-cjk-varcofirst, then design shared component geometry and lightweight root-program residency from evidence.This is the Source-Han-scale component-native path. The current flat
SourceHanSans-VF.ttfhas 65,535 glyphs, zeroglyfcomposites, and no VARC table, so it cannot answer VARC ownership or deduplication questions.Product boundary
Measurement spike
Use
notofonts/noto-cjk-varcov0.003 and independently inspect with fontTools plus HarfBuzz/skrifa rendering oracles.Record:
Do not approve ownership/sharding names before this report exists.
Expected architecture to test
The earlier suggestion to activate only visible dependencies and fill the rest in the background conflicts with the current no-scroll-acquisition Grid invariant. Prefer complete residency of all lightweight programs and unique shared geometry if measurement shows it is cheap; otherwise stop for an explicit product decision rather than silently reintroducing placeholders or scroll-time loads.
PR slices
Acceptance criteria
Non-goals
glyfoutlines.Related: #143, #154, #172, and the local
Research - CJK Authored-Source Fixtures and VARC Smart Components.