Chart Compiler Gallery
ChartSpec data compiles into resolved scales, layer specs, glyph definitions, scene graph nodes, and a single SVG renderer.
Timetable
Raw day/time events compile into a timetable grid, headers, and duration-aware event blocks.
Data Sources
4
Fields
17
Scales
1
Layers
7
Glyphs
76
rect 62 / text 14
Build Path
This example is rebuilt from gallery data source events by recipe timetable: raw table rows -> TabularSource -> pipeline drafts -> analyzeAuthoringDrafts() -> materialized ChartSpec -> compileChart() -> SceneGraph -> SVG. The graph below shows the authored pipeline stage.
Pipeline recipe graph
Data Flow Diagram
Select a glyph to highlight its complete source path.
Scope
Roles
No matching flow nodes
Adjust search, scope, or role filters.
Available Data
Imported table
ChartSpec
{
"id": "gallery.timetable",
"data": [
{
"id": "source_gallery_timetable",
"rows": 9
},
{
"id": "source_timetable_grid",
"rows": 50
},
{
"id": "source_day_headers",
"rows": 5
},
{
"id": "source_timetable_events",
"rows": 9
}
],
"transforms": [
{
"id": "pipeline_timetable_grid_layout_transform",
"type": "layout",
"input": "source_gallery_timetable",
"output": "source_timetable_grid",
"options": {
"end": 18,
"endField": "end",
"errorMethod": "standardError",
"field": "day",
"fit": "contain",
"geometryField": "day",
"groupBy": [
"day"
],
"idField": "day",
"includeMax": false,
"labelField": "day",
"layout": "pipeline_plot_layout",
"layoutKind": "timetableGrid",
"layoutMode": "proportionalAngle",
"mode": "normal",
"order": [
"Mon",
"Tue",
"Wed",
"Thu",
"Fri"
],
"orderField": "day",
"parentField": "start",
"seriesBy": "start",
"sourceField": "day",
"start": 8,
"startField": "start",
"targetField": "start",
"value": "title",
"xField": "start",
"yField": "end"
}
},
{
"id": "pipeline_timetable_header_layout_transform",
"type": "layout",
"input": "source_gallery_timetable",
"output": "source_day_headers",
"options": {
"end": 18,
"endField": "end",
"errorMethod": "standardError",
"field": "day",
"fit": "contain",
"geometryField": "day",
"groupBy": [
"day"
],
"idField": "day",
"includeMax": false,
"labelField": "day",
"layout": "pipeline_plot_layout",
"layoutKind": "timetableDayHeaders",
"layoutMode": "proportionalAngle",
"mode": "normal",
"order": [
"Mon",
"Tue",
"Wed",
"Thu",
"Fri"
],
"orderField": "day",
"parentField": "start",
"seriesBy": "start",
"sourceField": "day",
"start": 8,
"startField": "start",
"targetField": "start",
"value": "title",
"xField": "start",
"yField": "end"
}
},
{
"id": "pipeline_timetable_event_layout_transform",
"type": "layout",
"input": "source_gallery_timetable",
"output": "source_timetable_events",
"options": {
"end": 18,
"endField": "end",
"errorMethod": "standardError",
"field": "day",
"fit": "contain",
"geometryField": "day",
"groupBy": [
"day"
],
"idField": "day",
"includeMax": false,
"labelField": "title",
"layout": "pipeline_plot_layout",
"layoutKind": "timetableEvents",
"layoutMode": "proportionalAngle",
"mode": "normal",
"order": [
"Mon",
"Tue",
"Wed",
"Thu",
"Fri"
],
"orderField": "day",
"parentField": "start",
"seriesBy": "start",
"sourceField": "day",
"start": 8,
"startField": "start",
"targetField": "start",
"value": "title",
"xField": "start",
"yField": "end"
}
}
],
"axes": [],
"grids": [],
"legends": [],
"fields": [
"__rowLabel",
"id",
"day",
"start",
"end",
"title",
"kind",
"height",
"hour",
"label",
"width",
"x",
"y",
"duration",
"labelX",
"labelY",
"tooltip"
],
"scales": [
{
"id": "pipeline_kindfill_color_scale",
"type": "ordinal",
"domain": {
"source": "field",
"data": "source_timetable_events",
"field": "kind",
"fields": [],
"includeZero": false,
"order": "input",
"reverse": false,
"symmetric": false
}
}
],
"layers": [
{
"id": "create_chart_surface",
"mark": "rect",
"role": "context"
},
{
"id": "pipeline_view_layout_surface",
"mark": "rect",
"role": "context"
},
{
"id": "pipeline_plot_layout_surface",
"mark": "rect",
"role": "context"
},
{
"id": "pipeline_time_grid_layer",
"mark": "rect",
"role": "context"
},
{
"id": "pipeline_day_labels_layer",
"mark": "text",
"role": "guide"
},
{
"id": "pipeline_event_blocks_layer",
"mark": "rect",
"role": "data"
},
{
"id": "pipeline_event_labels_layer",
"mark": "text",
"role": "guide"
}
]
}Resolved SceneGraph
{
"scene": "gallery.timetable.scene",
"scales": [
{
"id": "pipeline_kindfill_color_scale",
"type": "ordinal",
"domain": [
"Team",
"Focus",
"External"
],
"range": [
"var(--colors-blue-9)",
"var(--colors-green-9)",
"var(--colors-amber-9)",
"var(--colors-purple-9)",
"var(--colors-red-9)"
]
}
],
"layers": [
{
"id": "create_chart_surface",
"role": "context",
"zIndex": -10,
"glyphs": 1
},
{
"id": "pipeline_view_layout_surface",
"role": "context",
"zIndex": 0,
"glyphs": 1
},
{
"id": "pipeline_plot_layout_surface",
"role": "context",
"zIndex": 0,
"glyphs": 1
},
{
"id": "pipeline_time_grid_layer",
"role": "context",
"zIndex": 0,
"glyphs": 50
},
{
"id": "pipeline_day_labels_layer",
"role": "guide",
"zIndex": 10,
"glyphs": 5
},
{
"id": "pipeline_event_blocks_layer",
"role": "data",
"zIndex": 20,
"glyphs": 9
},
{
"id": "pipeline_event_labels_layer",
"role": "guide",
"zIndex": 30,
"glyphs": 9
}
]
}Glyph Data Tree
Full parameter lineage for the active compiler surface.
create_chart_surface
pipeline_view_layout_surface
pipeline_plot_layout_surface
pipeline_time_grid_layer
pipeline_day_labels_layer
pipeline_event_blocks_layer
pipeline_event_labels_layer
Glyph Inspector
Select a glyph in the chart to inspect resolved params and lineage.