Skip to content
Forismo

Open-source credits

The engines behind the bench

Tools and Studio convert, compress and edit your files on your own device. They do it with open-source software written by other people, and most of these licences ask to be named. So here they are, with the licence each project ships under.


Files, documents and PDFs

Everything the Tools bench runs. These libraries execute in your browser — for every tool below, the file is never sent anywhere to be converted. The audio & video tools are the exception and say so on each tile: they are processed on Forismo's server by the FFmpeg build noted under third-party notices.

ProjectLicenceWhat it does here
pdf-libMITReading and writing PDFs — merge, extract, rotate, reorder, delete pages, watermark, page numbers and document details.
PDF.js (pdfjs-dist)Apache-2.0Rendering PDF pages — page thumbnails on the bench, and PDF to images.
JSZipMIT or GPL-3.0-or-later (used under MIT)ZIP archives.
fflateMITDeflate and inflate, everywhere bytes are packed.
jsPDFMITBuilding a PDF from Markdown.
MammothBSD-2-ClauseWord documents to HTML.
MarkedMITMarkdown parsing.
Papa ParseMITCSV reading and writing.
Tesseract.js (with the Apache-2.0 English tessdata)Apache-2.0Reading text out of images.
UPNG.jsMITPNG encoding and quantisation.

Studio

The making surfaces — design, sprites, 3D and games.

ProjectLicenceWhat it does here
three.jsMITThe 3D viewport.
opentype.jsMITTurning type into outlines.
polyclip-tsMITBoolean operations on shapes.
svgpathMITPath parsing and transformation.
fit-curveMITFitting curves to traced points.
SVG.jsMITParsing and authoring retained SVG artwork inside Sprite.
perfect-freehandMITPressure-aware vector pencil, brush and marker strokes in Sprite.
Box2D 3 WASMMITDeterministic 2D physics previews and baked Sprite motion.
react-colorfulMITThe colour picker.
KAPLAY 3001MITThe game runtime, vendored under public/vendor/kaplay with its licence file.
Transformers.js with ONNX Runtime WebApache-2.0 · MITOn-device model inference for search.
Google DracoApache-2.0Decompressing 3D geometry when you open a compressed model, served from public/vendor/three-decoders with its licence file.
Basis Universal (Binomial LLC)Apache-2.0Transcoding KTX2 textures to whatever compressed format your GPU can sample, served from public/vendor/three-decoders with its licence file.
meshoptimizerMITDecoding meshopt-compressed geometry and vertex data.

The application

The frame around all of it.

ProjectLicenceWhat it does here
RobotExpressive — Tomás Laulhé / Don McCurdyCC0-1.0The optional animated sample character in interactive messages.
Next.jsMITThe application framework.
React and React DOMMITThe interface itself.
supabase-jsMITAccounts, data and storage.
occt-import-js (OpenCascade)LGPL-2.1On-device STEP and IGES previews in conversations.
tus-js-clientMITResumable, chunked uploads for large editable Sprite projects.
SWRMITData fetching and caching.
ZodMITValidating what comes in.
SonnerMITToasts.
DOMPurifyMPL-2.0 or Apache-2.0Sanitising rendered HTML.
MapLibre GL JSBSD-3-ClauseMaps.
React Flow (@xyflow/react)MITNode graphs.
react-resizable-panelsMITDraggable panel seams.

Code copied into this repository

  • q-floodfill (MIT, Pavel Kukov) — the scanline core of the paint bucket in Studio's sprite editor. The copy carries the upstream licence text verbatim above it, and our changes to it are noted in the same comment.
  • KAPLAY 3001 (MIT, KAPLAY Team and contributors) — the game engine is served from public/vendor/kaplay/ unmodified, next to its LICENSE file, rather than fetched from a CDN.
  • Draco and Basis Universal decoders (Apache-2.0, The Draco Authors and Binomial LLC) — the two decoders that open a compressed 3D model are served from public/vendor/three-decoders/ next to their licence files, rather than fetched from Google's CDN as the library's examples do. They are the builds shipped inside the pinned three.js release, and each file's hash is recorded beside them so "unmodified" stays a checkable claim.
  • occt-import-js and OpenCascade (LGPL-2.1) — the CAD preview runtime is served from public/vendor/model-cad/. Its JavaScript bindings are adapted to the application's content security policy; the WebAssembly file stays unchanged. The source and modification notice, full licence text and upstream source are available.

Licence texts

Each project above ships its full licence text with its own source, and that text stays with the copy in this application's dependency tree. Nothing listed here is modified from what its authors publish, except where the section above says otherwise. If an attribution is wrong or missing, tell us and it gets fixed — reach us through the address on our Terms page.