This roadmap combines the original implementation plan with the new SDK‑first refactor work. Items marked Done are already in the codebase as of this update.
- SDK surface with
BlockExplorerBuilderandpreludeis in place. Done - Renderer abstraction (
BlockRenderer) and defaultSlabsAndCubesRendererextracted. Done - Agent feedback loop tests (fast unit/smoke) are in place. Done
- Integration tests use Anvil and are gated behind
--features integration. Done
- SDK boundary with
block_explorer::sdk::BlockExplorerBuilder. - Minimal
block_explorer::prelude(builder + core types). - App entrypoint uses builder (
src/main.rs). - Remove internal ECS resources from public API surface.
- Document SDK usage in
README.md.
Milestone: Consumers can embed Tessera as a Bevy app via a stable builder.
-
BlockRenderertrait withspawn_blockhook. -
rendermodule withSlabsAndCubesRendererdefault implementation. - Hardcoded visual formulas moved into config structs:
SlabSettings,TxRenderSettings,ClusterLabelSettings,BlobRenderSettings.
- Ingest path delegates rendering to renderer resource.
Milestone: Visual encoding is pluggable without forking scene/.
Goal: evolve BlockPayload/TxPayload beyond EVM‑specific fields.
- Introduce
TransactionEnvelopewith chain‑agnostic fields + optional EVM addenda. - Keep EVM mapping in
data/evm.rsonly. - Update renderers to consume the envelope instead of EVM types.
- Add Solana placeholder types and a thin adapter skeleton.
Milestone: new chains can map into a neutral transaction model without touching rendering.
Goal: allow SDK consumers to extend behavior without forking.
- Add
BlockSpawned,TxSpawned,TxClickedevents. - Provide builder hooks for registering event listeners or custom systems.
- Document extension points with a simple example.
Milestone: third‑party extensions can attach to the render pipeline and UI interactions.
- Value‑flow arcs (gas‑weighted, value‑colored) gated by selection or top‑N.
- Timeline scrubber with playback speed control.
- MEV & ordering visualization (cluster + ordering gradient).
- Gas heatmap mode (shader or texture).
- Contract clustering and labels.
Milestone: the scene explains why a block looks the way it does.
- Chain‑aware fee decomposition for OP Stack (L1 data fee, blob fee).
- Solana fetcher and adapter.
- Multi‑lane layout (parallel lanes or layered planes).
- Instanced rendering for tx cubes.
- Optional persistence (
redb) for fast startup and replay.
Milestone: multi‑chain, performant, and replayable explorer.
- Bloom, fog, SSAO, smooth camera transitions.
- Accessibility (color‑blind palettes, keyboard‑only nav).
- Cross‑platform packaging and a small web demo (optional WASM).
- README screenshots and setup walkthrough.
Milestone: distributable, polished visual SDK.
- Fast loop:
cargo test(unit + smoke; target < 30s). - Integration:
cargo test --features integration(Anvil, Docker required). - Guideline: integration tests must not depend on external RPC or secrets.
- Async bridge:
crossbeam_channelfor ECS safety. - RPC: polling instead of websockets for portability.
- EVM client:
alloyconfined todata/evm.rs. - Rendering: now pluggable via
BlockRenderer. - SDK surface: minimal public API, internal ECS resources hidden.