Lake Travis, in Signs
How much water is in the lake, and what does the coming weather look like? These charts use ISOTYPE’s repeated symbols to make quantities countable. Each sign stands for a fixed amount; larger totals get more signs.
How much water is in Lake Travis?
One dam sign represents ten percent of conservation capacity. A partial sign is a partial ten percent—icons repeat; they do not grow.
672.1FEET
8.9 feet below full pool.Full pool is 681 feet above mean sea level.
The lake moves by inches
The checked-in snapshot seeds the chart. New illustrative readings enter through ref.push(), with a 24-reading window, pulse, decay, and staleness handled by the frame.
Heat above; rain below
Two temperature strips preserve the old ISOTYPE weather-page logic. Five small blocks below each day encode rain chance in twenty-point units.
Trace rainfall through the watershed
The lake level is a network result: upstream weather, tributaries, reservoir storage, dam operations, and downstream demand. Each node and flow remains a navigable network datum.
Follow the Colorado downhill
The GeoFrame resolves the projection and hit testing. The shared pictograms sit at approximate basin locations, while the directional route is an SVG overlay in the same projected coordinate space.
Schematic basin context; symbol placement is approximate and is not a navigational map.
Plan a day at the lake
Check ramp elevation before towing.
Check current water-quality notices.
Wind and heat change quickly.
Full pool is 681 feet MSL.
Four frames, one symbol language
The same symbol set appears in the capacity strip, watershed diagram and basin map. Semiotic connects those marks to their values, tooltips, keyboard controls and accessible tables. The custom layout supplies the dam, water and weather shapes.
import { XYCustomChart } from "semiotic/xy" import { NetworkCustomChart } from "semiotic/network" import { GeoCustomChart } from "semiotic/geo" // The watershed pictograms ARE the marks: interactive glyph scene nodes // stamped from one shared GlyphDef sign set — canvas-painted, hit-tested, // keyboard-navigable, no separate hit target. sceneNodes: nodes.map((node) => ({ type: "glyph", cx: positions[node.id].x, cy: positions[node.id].y + 24, // feet-anchored signs stand on cy size: 48, glyph: isotypeGlyphDef(node.kind), color: node.color, style: {}, datum: node, id: node.id, label: node.label, })) // The streaming level chart keeps point nodes (they carry pulse/decay), // pushed through the frame's windowed ingestion: <XYCustomChart ref={levelRef} layout={lakeLevelIsotypeLayout} layoutConfig={{ levelDomain: [671.7, 672.45] }} enableHover accessibleTable onObservation={inspect} frameProps={{ windowSize: 24, pointIdAccessor: "id", decay: { type: "linear", minOpacity: 0.38 }, pulse: { duration: 900, color: "#d72f3f", glowRadius: 7 }, staleness: { threshold: 7000, showBadge: true } }} /> levelRef.current.push({ id: crypto.randomUUID(), level: nextSensorReading })