Pack Spec
The FormsCAD pack format is open, public, and stable. A pack is just a folder — no SDK, no build step, no compiler. This is the working reference; the formal versioned spec moves to the docs site when it launches.
1 · Folder structure
A pack is a directory containing a
manifest.json and the asset files it lists. Keep assets
beside the manifest or in subfolders — paths in the manifest are
relative to the manifest.
isa-pid-symbols/
manifest.json
symbols/
ft-field.svg
pt-field.svg
thumb.svg (optional preview, 16:9)
2 · manifest.json
UTF-8 JSON. Required: name,
version (semver), category,
compat, items. Optional:
author, description, thumb,
license.
{
"name": "ISA P&ID Symbols",
"version": "1.0.0",
"category": "symbols",
"compat": ["forms-2d"],
"author": "your-name",
"description": "Full ISA 5.1 instrument symbol set.",
"license": "CC-BY-4.0",
"thumb": "thumb.svg",
"items": [
{
"id": "ft-field",
"label": "Flow Transmitter (field)",
"file": "symbols/ft-field.svg",
"tags": ["instrument", "flow", "field"]
}
]
}
3 · Field reference
category— one of:symbols,title-blocks,linetypes,templates,hatch-patterns.compat— array; currently"forms-2d"."forms-3d"is reserved for integration packs.items[].id— unique within the pack, stable across versions (it's the reference key; don't rename it).items[].file— relative path to the asset. SVG for symbols/title-blocks/templates;.patfor hatch;.lin-style defs for linetypes.items[].tags— optional, used for palette search.
4 · Asset rules
- Symbols: single-path-or-group SVG, drawn at a sensible unit scale, origin at the insertion point.
- Title blocks: SVG with text fields named so the app can map drawing metadata into them.
- Hatch / linetypes: standard
.pat/ linetype-definition syntax — portable from existing CAD libraries.
5 · Install
Drop the pack folder into Forms 2D's
assets/ directory. The directory is watched — items
appear in the palette automatically, no restart.
6 · Versioning & stability
The manifest schema is versioned by this format, not
by your pack. Additive fields only — a newer Forms 2D will keep
reading older manifests. Bump your pack's own version
(semver) when you change its contents.
This is the working reference. The formal, version-pinned spec will live at docs.formscad.com/pack-spec when the documentation site launches. Questions: support@formscad.com.