Libraries

Shared libraries

Code that more than one product needs lives in a library of its own, with its own version, tests and performance budgets. 50 libraries exist, and 56 more are planned. Apart from interface-generator, a Node.js tool, each is a C++23 library that builds with MSVC, GCC and Clang on Windows and Linux.

Status on 15 October 2026. None of the libraries is released yet.

Foundation

LibraryWhat it doesStatus
contractsFPS_ASSERT, the precondition and invariant check every library uses.Built
unitsPhysical quantities whose dimensions the compiler checks, each stored as one double.Built
linalgDense matrices, a supernodal sparse LDLᵀ solver and a Lanczos eigensolver.Built
geometryPoints, vectors, directions, member axes and rigid placements in 3D, the spirals and polynomial curves of IFC 4.3, exact predicates, including those of lines that move, the weighted straight skeleton, elementary functions that give the same bits on every platform, and planar regions, also bounded by circular arcs, grown by a distance, with Booleans, clipping and splitting by snap rounding.Built
parametersNamed parameters and formulas with units, checked for dimensions when entered.Built
documentThe binary model file format with compressed, checksummed chunks, undo history that knows which position the saved file matches, a registry of open sessions with file stamps and limits, and editing sessions with recovery copies.Built
constraints2D parametric sketches with 27 constraint kinds and a solver.Built
meshTriangle meshes, exact Boolean operations, cuts of surfaces, lines and points by solids, repair of meshes meant as solids, and STL, OBJ and 3MF files.Built
unicodeValid UTF-8, case folding and full case mapping, NFC and NFD, word boundaries, grapheme clusters and display width, line breaking by UAX #14, sorting by the CLDR root collation and the tailorings of CLDR's locales, Chinese and Japanese among them, and character properties and property sets from Unicode 18.0.Built
regexRegular expressions with JavaScript's syntax on UTF-8 text, with a limit on the work of every search, tested with 42 793 cases computed by V8, and the regular expressions of XML Schema.Built
interface-generatorGenerates each product's C API, command-line program with its MCP server and JSON Schemas from one interface definition, with batches of operations run in one process, the TypeScript, the type metadata and the operation table of a desktop program's web view, and the record tables of the document container. It also lists the changes that would break a released interface.Built
mcpServes a program's operations as tools to AI agents over the Model Context Protocol's standard input and output, with progress and cancellation. Every product's command-line program serves its operations through it.Built
graph-layoutForce-directed layout of the note graph that keeps its state between steps while a person drags nodes. The layered layout of whiteboards is planned.Built
meshingConstrained Delaunay triangulation of planar regions, decided by exact predicates, refined to a minimum angle with graded sizes and circular arcs into three- and six-node triangles for finite element meshes. Surface and volume meshing follow.Built
viewportThe 3D views of the engineering programs: a scene of geometries, items, layers, fields and labels, changed by change sets and asked what lies under the cursor or in a window, drawn with Vulkan into offscreen images: faces and edges culled on the GPU with levels of detail, halftone, selection and hover, items at a constant size in pixels, layers per view, scalar fields through colour maps and deformed shapes. Views are cut by section planes and a clip box with caps, transparent items are blended by weight, labels are drawn from a glyph atlas, legends, an axis triad and a navigation gizmo are drawn as overlays, uploads never block a frame, frames go to windows on Windows and to exported targets on Linux, and images are exported in tiles of any size, also over a transparent background.Built
desktopThe host of every desktop program: windows with the system's message dialogs, the system web view of its panels, the JSON bridge to its operations, its URL scheme, the native surfaces of its 3D views on Windows and Linux, and the parts of its panels: docks around the views, commands with one key map, a command palette, a progress display, a property editor with unit inputs, a model tree and a table that reads from the program only the rows in view.Built
cryptoCryptographic operations as typed values over OpenSSL 3: MD5, SHA-1 and SHA-2 digests so far. Keys, signatures and certificates follow.Built
localizationNumbers, quantities with their units, and dates written as text in British English, American English and Finnish, the same in a report, a chart and a program's table, and numbers and quantities read back as a person types them, in any unit a field accepts.Built
record-tablesReads the generated record tables of a product's files without their types: the layout from the descriptor, and rows by path, filter, sort and page, with only the columns asked for, also of a table stored in parts.Built
chartsA chart of quantities, such as a capacity curve, a response spectrum or an interaction diagram, laid out in a frame with its axes, ticks, legend and series, set in the brand's typefaces and colours, given as a graphics scene for a report and as JSON for a program's page, which asks the layout for the nearest point, keyboard moves, zoom and pan, so that the page and the printed report show the same chart.Built
spatial-indexBounding volume hierarchies of boxes and oriented boxes, static or changing, with box, point, ray, region, window, closest-hit, nearest and pair queries, for exact Booleans, picking, clash tests and hidden-line removal.Built
encodingThe 40 encodings of the WHATWG Encoding Standard, decoded to and encoded from UTF-8 as streams, such as the Windows code pages that CSV files arrive in, and strict base64 and base16.Built
parallelIndependent work run on several threads, the calling thread included, for the libraries that read large files and indexes.Built
fontsOpenType and TrueType faces, text shaping, subsets and whole static instances for embedding in PDF and HTML, and the OpenType MATH table, over HarfBuzz.Built
graphicsA 2D vector scene of paths filled and stroked in plain colours or linear and radial gradients, clips, groups marked as structure or artifacts, shaped text, PNG and JPEG images and BMP and GIF images kept as PNG, its SVG writer, PNG files written row by row, and colours converted between ICC profiles, so that a picture in any colour space shows in sRGB.Built
typesetHyphenation of English and Finnish by Liang's patterns, paragraphs broken into lines as TeX does, and formulas, arrays among them, laid out from the OpenType MATH table, set inline among the text and written as UnicodeMath linear text and MathML Core, for calculation reports.Built
brepBoundary-representation solids for STEP AP203, AP214, AP242 and IGES.Planned
dataflowA graph of typed components for visual programming, with script components.Planned
renderImages of models made by ray tracing.Planned

File formats

LibraryWhat it doesStatus
stepISO 10303-21 exchange files and EXPRESS schemas with their rules parsed, generated and checked, read and written without loss, written again with unchanged instances as read, read in blocks without holding the text, and parsed and checked on several threads.Built
ifcIFC2x3, IFC4 and IFC 4.3 in text, XML and ZIP form, models upgraded from IFC2x3 to IFC4 and IFC 4.3, checked against the rules of their schema and against IDS 1.0 documents: structural analysis models with every structural item, connection, action, result group and reaction, product geometry from extrusions to advanced breps with openings and other features cut, compared with IfcConvert, styles, layers, annotations, georeferencing and material layers, read on every core, subsets of chosen products, instances, relationships and property and quantity sets created, changed and removed, and queries of materials, references, types, groups, connections, contexts, shape aspects, alignments, work schedules with their tasks, sequences and calendars, construction resources, costs and assets, and every value, unit, property and quantity, typed.Built
archiveZIP archives, including ZIP64, read in place and written as streams, with deflate.Built
xmlXML 1.0 with namespaces, read as a stream by its own parser and written always well-formed, with kept fragments whose values and elements can be walked, replaced, removed and inserted.Built
jsonStrict JSON (RFC 8259) that keeps numbers exact until they are read, and documents compared within rounding.Built
markdownCommonMark, GitHub Flavored Markdown and Obsidian syntax with the byte span of every node, HTML output and minimal edits.Built
yamlYAML 1.2.2 front matter with byte spans and minimal edits, tested with the 402 cases of the yaml-test-suite.Built
spreadsheetXLSX workbooks read and written as streams, a million cells without holding the workbook, or held in memory, edited and saved, with each value kept exactly, shown through its number format as Excel does, formulas parsed, shared formulas expanded, rows and columns inserted and deleted with their references and tables following.Built
csvCSV tables read and written as streams, in the dialects of RFC 4180, the W3C tabular data model and spreadsheets, and in every WHATWG encoding, with the encoding and dialect of an unknown file found.Built
opcOpen Packaging Conventions packages, the container of XLSX and 3MF files, with the markup compatibility processor of ECMA-376 Part 3.Built
htmlThe WHATWG HTML parser for bytes in any encoding: the named character references, the tokenizer and tree construction into a document model, with every parse error of the standard; serialization, an XML infoset, a port of DOMPurify, and pasted HTML turned into Markdown as Obsidian does.Built
pdfThe PDF object model of ISO 32000-2 and a one-pass writer with object streams, Flate, content streams, PNG and JPEG images, gradients, embedded font subsets, pages from graphics scenes, navigation, XMP metadata, tagged structure and attached files, as PDF/A-2, PDF/A-3 and PDF/UA-1, giving the same bytes on every platform.Built
mermaidMermaid diagrams read and drawn in C++, to take the place of the notebook's JavaScript renderer.Planned
safThe Structural Analysis Format for exchanging analysis models.Planned
3dmRhino .3dm files.Planned
struxmlStruXML structural models, read and written.Planned
cadinpCADINP input files of structural analysis, read and written.Planned
landxmlLandXML terrain and alignments.Planned
iomOpen Model and Open Model Result XML files of steel connection design.Planned
stdSTD input files of frame analysis, with every command, read and written.Planned
mctMCT command files and their JSON form, for bridge analysis models.Planned
bcfBIM Collaboration Format issues.Planned
fabricationExports to fabrication management systems and NC files of tubes.Planned

Engineering

LibraryWhat it doesStatus
eurocodeDesign checks to EN 1990, EN 1991, EN 1992, EN 1993, EN 1995, EN 1997 and EN 1998, with the recommended values and the Finnish national choices.Built
femFinite element analysis of 3D frames with continuous restraints along beams and buckling modes as imperfections: linear, second-order, geometrically nonlinear with large rotations under load, displacement or arc-length control, with plastic hinges or fibre sections, pushover, buckling, modal, response spectrum, and linear and nonlinear time histories with modal damping, with links, gaps, isolators, equivalent linear analysis of isolated structures and storey drifts, buckling held in a plane, soil under surfaces with a shear layer, nodal bimoments, distributed moments and imposed strains over part of a beam, and planar surfaces meshed into flat three-node shells, joined to each other and to members along edges and hinges, in statics, buckling, second order, first-order nonlinear paths and the dynamic analyses.Built
sectionsCross-section shapes and properties, including rolled angles and channels, monosymmetric I sections, tees, folded sections with their plate elements and line model, elliptical hollow sections, compound sections of placed shapes whose parts in contact can slip or be bonded, the midline model of thin-walled sections with their torsion, warping, shear flows, stresses and effective-section transitions, the stresses of polygon sections, the plastic neutral axis and interaction fan, and sections of any outline with their plastic stress blocks and their torsion, warping, shear centre and shear functions solved by finite elements, also along tapered members, the fibres of a section with the residual stresses of hot-rolled I sections, the plastic interaction of a section's forces, and 1445 hot-rolled, hollow, angle, channel, tee and elliptical hollow profiles with provisional values until the product standards are held.Built
materialsStructural steel grades, concrete classes, reinforcing and prestressing steel, solid timber, glulam and LVL, the EN 10149-2 steels of EN 1993-1-12, bolt property classes, ISO metric thread sizes, the through-thickness classes of EN 10164, and the elastic-plastic laws of steel at a material point.Built
structural-modelThe structural model of a 3D frame as an engineer describes it, with continuous restraints, imperfections of many load cases, links, gaps, isolators, distributed moments, nodal bimoments, heated stretches, fibre members and plastic-hinge members that yield on the plastic surface that eurocode gives their sections, turned into a finite element model.Built
project-modelThe parametric project model: grids, levels, members, walls, slabs and openings, bridges along alignments with substructures, bearings and isolators, roofs with their openings, envelopes derived from roofs, slabs and walls, steel components whose joints enter the analysis model, EN 1990 actions over load cases, area loads transferred to the analysis model with imposed loads reduced by area and storeys, and load combinations derived from the actions, with undo and redo and binary and JSON files.Built
alignmentIFC 4.3 alignments for roads, railways and bridges: horizontal and vertical layouts, cant, stationing and placement by distance and offset.Built
detailingSteel parts as a fabricator makes them: profiles and plates with holes and cuts, numbering, bolts, one-sided fasteners, welds, shop assemblies, and components: fin plates, end plates, also to hollow-section columns, double angle web cleats, moment end plates with haunches, stiffeners, backing plates and cap plates, column base plates with anchor bolts up to M64, stiffeners, gussets and shear nibs, corner gussets of bracing members with back-to-back pairs and hollow braces on tabs and tees, and bolted cover plate and end plate splices of beams, columns, hollow sections and portal frame apexes, butt welded, welded cover plate and division plate splices, and column splices in bearing or not.Built
reportCalculation reports: a document of sections, equations, calculations, verifications, tables and figures, among them charts with their data, sections sketched to scale and diagrams along members, checked as a whole, numbers and units printed by ISO 80000-1, and set text laid out on pages with headings and blocks, written as tagged PDF that claims PDF/A-2a and PDF/UA-1 and as a self-contained HTML page. The working of EN 1993 is printed for steel sections, their classification, effective sections and shear lag, plastic hinges and net areas; the other checks follow.Built
load-generationArea loads on slabs and floors transferred to the beams, walls and columns that support them, with the reduction of imposed loads, and every snow and wind arrangement of EN 1991-1-3 and EN 1991-1-4 on a building's walls and roofs, parapets, canopies and free-standing walls, wind on exposed members, lattice structures, cylinders, spheres, flags and signboards, and on bridges the deck temperatures, road traffic on the carriageway with its groups and behind abutments, footbridge loads and pedestrian excitations, and rail traffic on its tracks spread through ballast and fill, with its horizontal forces, groups and derailment. Earth pressures follow.Built
drawingDrawings from a 3D model: projections, hidden lines, sections, dimensions and sheets.Planned
timber-framingFraming rules for walls, floors and roofs, panels and BTLx output.Planned
cfdIncompressible flow on volume meshes for wind simulation.Planned
prestressingTendon geometry, prestressing systems, losses, elongations and their effects stage by stage.Planned
precastPrecast element families, pretensioned elements designed to EN 1992, and production and erection planning data.Planned
geotechnicsGround models, site investigations, slope stability, settlement, ground improvement, retaining structures, foundations, piles, soil-structure interaction, seepage and continuum analysis.Planned
lcaLife cycle assessment by EN 15804+A2 from quantities and environmental product declarations.Planned
energyHourly dynamic building energy simulation, verified by the ASHRAE 140 test cases.Planned
towersLattice towers generated with their equipment and icing.Planned
pipingPipe elements, components and the piping codes.Planned
seismic-recordsAccelerograms: recorded sets, artificial records compatible with a spectrum, and ground-motion suites.Planned
load-mapsSnow, wind and seismic values by location.Planned
schedulesTemplates for lists, bills of material and drawing tables, written as text, CSV, HTML, PDF and XLSX.Planned
construction-planningPhases, lots, sequences and tasks with their schedules, exchanged as project schedule XML, and the 4D status of a model.Planned
familiesThe geometry of parametric families of building objects.Planned
joint-analysisShell models of steel joints and of members with their joints, built from detailing objects and checked against the 5 % strain limit.Planned
stress-fieldsCompatible stress field models of concrete discontinuity regions in 2D and 3D.Planned
aashtoAASHTO and AASHTO LRFD bridge design, with their load trains and response spectra.Planned
aciACI 318 concrete design.Planned
aiscAISC 360 steel design with its direct analysis method, and the seismic provisions of AISC 341.Planned
as-nzsAustralian and New Zealand codes: AS 3600, AS 4100, AS 5100 and NZS 3101.Planned
bsBritish codes: BS 5400, BS 5950 and BS 8110.Planned
siaSwiss codes: SIA 262 and the SIA 26X series.Planned
gbChinese GB codes, GB 50010 among them.Planned
isIndian codes: IS 456 and IS 802.Planned
eheThe Spanish structural concrete code EHE.Planned
dinGerman codes: DIN 1045 and DIN 18800.Planned
asceASCE 7 loads, the IBC, and the seismic evaluation of ASCE 41.Planned
csaCanadian codes: CSA S16, A23.3 and O86, and the NBCC.Planned
nbrBrazilian ABNT NBR standards.Planned
spRussian SP codes.Planned
ntcThe NTC codes of Italy and of Mexico.Planned
sansSouth African national standards.Planned
cteThe Spanish building code CTE.Planned
aisiAISI cold-formed steel design.Planned
awcTimber design by the AWC National Design Specification.Planned
admAluminium design by the Aluminum Design Manual.Planned
hkHong Kong codes.Planned
asmeASME B31 piping and ASME NF component supports.Planned
sjiSteel joist specifications of the Steel Joist Institute.Planned

Note taking

LibraryWhat it doesStatus
vaultAn Obsidian-compatible folder of notes: safe reads and writes, an SQLite index of links, tags and tasks, search, a quick switcher, read-only SQL, the graph, a reading view, link-preserving renames, merges of two versions of a note, Obsidian's property types, link suggestions, unlinked mentions, templates and daily notes, undo and redo, Obsidian's hotkeys and attachment folders, and a watcher that reports the changes other programs make.Built
databaseDatabases stored as files in the vault.Planned
boardWhiteboards and evidence boards.Planned

Company

LibraryWhat it doesStatus
brandThe company brand: colour roles for light and dark mode, typefaces with an italic and a math typeface, print tokens, the colours, stroke widths and symbol sizes of 3D views and diagrams, the focus ring, typefaces compiled into C++ programs, and the logo, for C++ programs and websites.Built