

Demo
BDF is a browser document-preview suite: it combines converters for many formats (Go/WASM), a browser renderer of about 23 KB gzipped, and a compact intermediate format.
- Size
- 60 × 40 mm
- Copper layers
- 4
- Thickness
- 1.6 mm
- Parts
- 7
- Nets
- 4
- Pads
- 25
- Tracks, vias
- 4, 3
- Pours
- 3
- Routed
- Yes
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 25 Sep 2026
- Updated
- 30 Oct 2026
Overview
Demo is an open-source printed circuit board by shibukawa, from the shibukawa/bdf repository on GitHub, published under the MIT licence. It is a 4-layer board of 60 × 40 mm with 7 parts on 4 nets, routed with 4 tracks and 3 vias.
Its parts include 4 resistors, 1 IC, 1 connector and 1 crystal.
README
README.mdBDF
English | 日本語
BDF (Browser-specific Document Format) is a document format for previews that browsers can draw straight onto Canvas 2D. Its stable wire format is version 1.0.
Previewing a PDF, a Word file, or a CAD drawing in a browser usually means running a full office suite, or a headless browser, on the server. BDF's converters need neither: they're plain Go, and the same code also builds as WebAssembly, so it can convert inside the browser too. PDF, Office files (Word, PowerPoint, Excel, CSV, Parquet, Visio), InDesign (IDML), draw.io diagrams, CAD drawings (DXF, Jw_cad, SXF, CGM, HP-GL/2), circuit boards (Gerber, Excellon, KiCad), Illustrator, Photoshop, HTML, Markdown, EPUB, music (MML, MIDI, MusicXML, playable in the viewer), audio files (MP3, M4A, FLAC, Ogg, WAV, AIFF: their cover art, tags and lyrics, playable in the viewer) and font files all convert this way, and one renderer, running in a Web Worker, draws every one of them.
Try it — drop a file on the demo site; it converts and draws inside your browser, without being uploaded. Read the docs for why BDF exists, every format it reads, three sample server architectures, and how it's built.
Quick start
go run ./cmd/bdf generate report.pptx report.bdf # convert
go run ./cmd/bdf ls report.bdf # inspect
npm ci && npm run demo # open it in a browser
# http://127.0.0.1:8765/examples/viewer/.out/?src=/report.bdfGo 1.27+ and Node.js are needed to build from source; see Getting started for the rest, including converting from Go code directly.
For an npm integration, including server-converted BDF and browser conversion presets, see npm packages.
Layout
| Path | Contents |
|---|---|
*.go, converter/, encoding/, raster/, contrib/, internal/ | The Go encoder/decoder, one converter package per input format, and the Parquet encoding of the tables of values a document holds |
form/, vector/, text/ | Filling templates of forms with data: Excel, Word and PowerPoint files with tags, PDFs with form fields, templates of pdfme, text files of the lines of continuous forms and receipts (QR codes and barcodes are image/barcode/); and writing documents as PDF files, tagged and PDF/A too, and as Markdown |
packages/ | The decoder, renderer, viewer surface and TinyGo-backed browser converter npm packages |
examples/, site/ | The demo viewer, four sample server architectures, and the site published on GitHub Pages |
docs/ | This documentation |
See Repository layout for the full breakdown, and Building and testing for go test, browser integration tests, and regenerating fixtures.
License
MIT.
Fonts
The fonts in this repository have licenses of their own:
- STIX Two Math 2.13 b171 is embedded in the package
image/formula, as the font formulas are laid out with. It is the file of the upstream release, unmodified (stipub/stixfonts, tagv2.13b171;image/formula/fonts/README.mdhas its SHA-256), under the SIL Open Font License 1.1. Copyright 2001-2021 The STIX Fonts Project Authors, with Reserved Font Name "TM Math". A program that importsformulaholds this font. - Bravura (music symbols, as a table in
converter/internal/music/smufl) is under the SIL Open Font License 1.1. Copyright © 2015 Steinberg Media Technologies GmbH, with Reserved Font Name "Bravura". - M PLUS 1p digit outlines are included in
image/barcodefor the numbers below JAN/EAN/UPC bars, under the SIL Open Font License 1.1. - NewStroke (KiCad's stroke font, in
converter/kicad) is CC0. - DejaVu Sans subsets (in
fixture, for the sample document) are under the DejaVu Fonts License. - The test fonts (subsets of M PLUS 1p, STIX Two Math and STIX Two Text) sit beside their licenses in
testdatadirectories.
Fonts and licenses lists them with the fonts the demo site serves.
Parts
7| Qty | Value | Footprint | References |
|---|---|---|---|
| 3 | 10k | Resistor_SMD:R_0603 | R1, R2, R3 |
| 1 | 0R | Resistor_SMD:R_0603 | R10 |
| 1 | Header | Connector:Header_1x04 | J1 |
| 1 | SOIC-8 | Package_SO:SOIC-8 | U1 |
| 1 | — | Test:OddPads | X1 |
Similar boards
- 4 layers122.5 × 99.5 mm

- 4 layers32.3 × 61 mm

MCL6809 PCB
MicroCoreLabs/Projects
Ted Fried's MicroCore Labs Projects - FPGA CPU cores and emulators for the 8088, 8086, 8051, 6502, 68000, Z80, Risc-V, and also Typewriter and EPROM Emulator projects.
7 parts534 - 4 layers17.8 × 41 mm

- 4 layers108 × 31.8 mm

Simm72 ram 8M10
agranlund/raven
Homemade MC68060 + DSP56303 Atari-compatible computer. Hardware, firmware, and software stack
7 parts87 - 4 layers100 × 80 mm

Diffpair test
rjwalters/kicad-tools
Standalone Python tools for parsing and manipulating KiCad schematic and PCB files
7 parts73MIT - 4 layers57.9 × 26 mm

MegaCD
Board-Folk/MegaCD-Main-BD
Reproductions of main board PCBs for Sega's Mega CD/Sega CD add-on for the Mega Drive/Genesis console.
7 parts60 - 4 layers10.5 × 10.5 mm

LIS2HH12
marsairforce/breakout_boards
Small circuit boards to assist with breadboard prototyping with SMD packages.
7 parts39Unlicense - 4 layers29 × 50.3 mm

Toshiba hvac esp32
florianbrede-ayet/esphome-toshiba-hvac-controller
ESPhome component & hardware to control Toshiba & Carrier HVAC units with WIFI interface
7 parts38MIT
Questions
How big is the Demo PCB?
It measures 60 × 40 mm and has 4 copper layers, 1.6 mm thick.
What parts does the Demo use?
7 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the Demo KiCad files?
From the shibukawa/bdf repository on GitHub, at the commit this page was made from: the board is converter/kicad/testdata/demo/demo.kicad_pcb and its schematic converter/kicad/testdata/demo/demo.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Demo design in my own project?
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).