Skip to the content
4 layers60 × 40 mmDemo, the printed circuit board in 3D

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.md

BDF

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

sh
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.bdf

Go 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

PathContents
*.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, tag v2.13b171; image/formula/fonts/README.md has 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 imports formula holds 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/barcode for 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 testdata directories.

Fonts and licenses lists them with the fonts the demo site serves.

Parts

7
QtyValueFootprintReferences
310kResistor_SMD:R_0603R1, R2, R3
10RResistor_SMD:R_0603R10
1HeaderConnector:Header_1x04J1
1SOIC-8Package_SO:SOIC-8U1
1—Test:OddPadsX1

Similar boards

  • 4 layers32.3 × 61 mmMCL6809 PCB, the printed circuit board in 3D

    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 mmABSIS Pro Micro, the printed circuit board in 3D

    ABSIS Pro Micro

    jrsteensen/OpenHornet

    OpenHornet 1:1 F/A-18C Simulator Repository

    7 parts431
  • 4 layers108 × 31.8 mmSimm72 ram 8M10, the printed circuit board in 3D

    Simm72 ram 8M10

    agranlund/raven

    Homemade MC68060 + DSP56303 Atari-compatible computer. Hardware, firmware, and software stack

    7 parts87
  • 4 layers100 × 80 mmDiffpair test, the printed circuit board in 3D

    Diffpair test

    rjwalters/kicad-tools

    Standalone Python tools for parsing and manipulating KiCad schematic and PCB files

    7 parts73MIT
  • 4 layers57.9 × 26 mmMegaCD, the printed circuit board in 3D

    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 mmLIS2HH12, the printed circuit board in 3D

    LIS2HH12

    marsairforce/breakout_boards

    Small circuit boards to assist with breadboard prototyping with SMD packages.

    7 parts39Unlicense
  • 4 layers29 × 50.3 mmToshiba hvac esp32, the printed circuit board in 3D

    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).