mrkeyoor.com_
Sun 13 Sept 16:47 UTC
AI Toolsevaluationupdated 13 Sept 2026

sdf-js review

sdf-js is the repository behind Atlas, a browser-based JavaScript toolkit and presentation experiment that turns code or an LLM prompt into editable 2D and 3D scenes. Its signed-distance geometry is meant for illustrations whose shapes, labels, and repeated motifs must stay consistent between renders. The current checkout is a private root package that you run from source, despite the library-like repository name.

trackingstars / 7d
Verdict

Our sdf-js run installed 116 packages in 14 seconds and passed its tests in 31 seconds, but npm audit found 2 high-severity vulnerabilities and no build target existed. Try Atlas for noncommercial experiments that need editable, repeatable geometry across several renderers. A private version 0.1.0 package, no GitHub release, and a commercial-use restriction make it a poor default dependency for a product today.

We ran it

Lab card: what happened when we ran sdf-jsScreenshot of sdf-js (github.com/shaun8149/sdf-js)
Install✓ · 14s116 packages · 189 MB
Buildn/ano build script
Tests✓ · 31sran, no count parsed
Known vulns20 critical · 2 high · 0 moderate · 0 low (npm audit)
Repo2768 files~172,200 lines of source · 71 MB · 1 CI workflows

Answers from our run

Does sdf-js build from source?

Dependencies installed in 14 seconds (116 packages), and the project has no separate build step. We cloned commit 0a1d537 into a clean Debian container with 3 CPUs and no project-specific setup.

Do sdf-js's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Does sdf-js have known vulnerabilities in its dependencies?

npm audit flagged 2 known advisories in the dependency tree at the time of our run.

Who should not use sdf-js?

Commercial product teams without a separate agreement: PolyForm Noncommercial 1.0.0 covers the Atlas code and COMMERCIAL.md says commercial use requires another license.

What are the alternatives to sdf-js?

three.js, p5.js, JSCAD. Our sdf-js run installed 116 packages in 14 seconds and passed its tests in 31 seconds, but npm audit found 2 high-severity vulnerabilities and no build target existed.

Setup3/514-second install; demos need source serving and sometimes an API key
Docs3/5Deep technical README, though shipped work and roadmap intermingle
Community2/5269 stars and 14 open pull requests around an active main branch
Maturity2/5Tests pass, but version 0.1.0 has no release and 2 high advisories

Who it’s for

Creative coders who want to build deterministic 2D or 3D graphics from JavaScript shape operations.
Researchers and educators comparing code-generated illustration with pixel-generating models.
Noncommercial users who want to inspect or alter the Atlas presenter, scene format, renderers, or browser demos.
Developers willing to work in a large, fast-moving source checkout instead of consuming a released npm package.

Who it’s NOT for

Commercial product teams without a separate agreement: PolyForm Noncommercial 1.0.0 covers the Atlas code and COMMERCIAL.md says commercial use requires another license.
Developers expecting a published, versioned npm library: the root package is marked private at version 0.1.0, and GitHub returned no latest release.
Security-sensitive deployments that require a clean dependency audit: our npm audit reported 2 high-severity vulnerabilities at commit 0a1d537.
Users who need generated photos or impressionistic images: the README assigns that work to diffusion models and focuses Atlas on geometric output.
CAD or game projects that need rigid-body contact physics or current STL export: the README says solver-grade contact is outside scope and describes STL as planned.
Prompt users unwilling to provide an Anthropic API key: the live gallery needs no key for 8 prepared scenes, while the editable prompt demo calls Anthropic Claude.

Setup reality

Our sandbox installed 116 npm packages in 14 seconds and used 189 MB on disk. There was no build script or target, so the build step was skipped. Tests succeeded in 31 seconds; npm audit reported 2 high-severity vulnerabilities and 0 at the other severities.

The manifest requires Node 20 or newer. Browser demos are served from the checkout with a small Python 3 server on port 8001. Prepared gallery scenes need no credential, while the text-to-SDF demo uses an Anthropic API key. The root package is private, so this is a source checkout rather than a normal npm-library install.

A compatible browser and graphics stack are needed for the WebGL renderers and fly-through views. The project has no Dockerfile and no build target. Atlas code uses PolyForm Noncommercial 1.0.0; commercial use requires a separate license, while listed third-party components keep their own terms.

Seven renderers make sdf-js much larger than a shape library

The README describes 7 renderers that consume signed-distance geometry in 2D or 3D. Shapes are mathematical functions, then union, intersection, difference, repetition, bending, or extrusion composes them into a scene. One scene can feed flat silhouettes, line output, stippled canvas art, shaded 3D views, or GPU effects. The practical benefit is controlled revision: changing one radius or position preserves the rest of the structure instead of asking an image model to redraw everything.

Atlas now surrounds that library with far more application code. Our checkout contained 2,768 files, about 172,200 source lines, and 71 MB before dependencies. It includes a browser compositor, editors, a presentation product, PDF handling, LLM prompt paths, scene serialization, shader code, asset libraries, and many regression scripts. Anyone arriving for a chainable SDF helper should understand the scale first. The repository name describes its origin better than its current product boundary.

What happened when we ran it

Our sandbox installed 116 npm packages in 14 seconds, taking 189 MB on disk. The repository had no build script or target, so that step was skipped. Tests succeeded in 31 seconds. We measured commit 0a1d537 in an unprivileged Node 22 container with 3 CPUs and 8 GB of RAM. The passing command is meaningful for this script-heavy project, although it does not establish visual quality or browser and GPU compatibility.

Npm audit reported 2 known vulnerabilities, both high severity, with 0 critical, moderate, or low findings. The supplied lab result does not name the affected packages or reachable code paths, so we cannot say how exploitable they are. Our scan found 1 CI workflow, no Dockerfile, and no tests directory even though the root test script runs checks from other paths. Production evaluation should begin by reproducing the audit and tracing both advisories through the application path you intend to expose.

Version 0.1.0 is private and GitHub has no release

The root manifest names the package Atlas, marks version 0.1.0 as private, and requires Node 20 or newer. GitHub's latest-release endpoint returned no release. This is therefore a repository you clone and operate, rather than a versioned library you add from npm with a documented compatibility promise. The lack of a build target is consistent with many browser examples loading source modules directly, but it leaves packaging and deployment choices to each adopter.

Local demos use a Python 3 server on port 8001, then open pages under the examples directory. The README offers a public gallery with 8 prepared 3D scenes and says it needs no API key. The editable MVP takes a text prompt, calls Anthropic Claude, receives JavaScript SDF code, and renders it in the browser. That path needs an Anthropic credential and appropriate controls around generated code, network errors, usage limits, and content sent to the provider.

More than 40 primitives feed both canvas and GPU output

The current capability list names more than 40 SDF primitives across 2D and 3D. It also documents extrusion and revolution from 2D into 3D, shape operations, repetition, SVG paths from the line renderer, WebGL fly-through views, and SceneData as a serializable description of subjects, camera, lighting, and regions. These are useful building blocks for icons, charts, diagrams, geometric editorial art, and presentations where exact placement survives repeated rendering.

Some prominent outputs remain aspirations. The README labels STL export for 3D printing and GIF or MP4 animation as planned. Its roadmap also separates shipped, pending, and deferred editor work, although the main page spends many paragraphs describing the intended world-simulator direction. Read STATUS.md and the code path for the feature you need before treating a roadmap argument as an available API. The long thesis is interesting, but it can obscure the smaller set of interfaces an adopter can rely on now.

PolyForm 1.0.0 allows noncommercial use, not ordinary product use

Atlas original work is under PolyForm Noncommercial 1.0.0. COMMERCIAL.md says personal projects, teaching, academic research, and qualifying public-interest work can use it without a separate agreement. It also says charged products, commercial publications, internal company tooling, and hosted paid generators require a commercial license. Third-party pieces, including portions derived from fogleman/sdf, retain their listed licenses. A public repository and readable source do not grant the MIT-style product rights many JavaScript teams expect.

That boundary deserves review before a prototype becomes company work. The commercial document asks prospective users to contact the project for terms, but it does not publish standard pricing. JSCAD is a cleaner alternative for an MIT-licensed parametric JavaScript workflow, while three.js is the broader choice for custom browser 3D. Noncommercial artists and researchers face less friction, provided they are comfortable operating a private 0.1.0 package directly from its repository.

Two high advisories sit beside same-day development

The 2 high-severity audit findings are the largest technical reason to pause before exposing Atlas to untrusted documents or prompts. Two open pull requests separately propose updates to PDF and lockfile dependencies for reported security problems, but the lab result does not prove those proposals correspond one-for-one with our audit findings. Neither pull request was merged when fetched. Re-run the audit after any dependency change, then test the PDF and browser paths instead of assuming an updated lockfile settles application risk.

The last push was September 13, 2026, and GitHub listed 14 combined open issues and pull requests. Every open entry returned by the API was a pull request, including recent fixes for query-parameter handling and geometric correctness. The project had 269 stars and 8 forks, modest outside adoption for a codebase of 172,200 source lines. Development is plainly active. External review, release discipline, and stable consumer boundaries have not caught up with its rate of expansion.

Alternatives

ProjectWhat it isPick it when
three.js gh↗A general JavaScript 3D library for browser rendering and scene construction.pick this instead when you need a widely used 3D foundation and will design the scene model yourself.
p5.js gh↗A browser creative-coding platform built around approachable drawing and animation APIs.pick this instead when teaching, sketching, or general generative art matters more than an SDF scene tree.
JSCADBrowser and command-line tools for precise parametric 2D and 3D designs in JavaScript.pick this instead when printable geometry and an MIT-licensed CAD workflow matter more than LLM illustration.
fogleman/sdfA compact Python library for creating meshes from signed distance functions.pick this instead when Python and mesh generation are the job, and Atlas's browser presenter is unnecessary.

What people are saying

  1. [github-trending] shaun8149/sdf-js

Sources

  1. sdf-js repository
  2. Atlas README
  3. Atlas project status
  4. Atlas package manifest
  5. PolyForm Noncommercial license
  6. Atlas commercial licensing terms
  7. PDF dependency update pull request 433
  8. Atlas test workflow

More ai tools reviews

AI-Engineering-Coach · TradingAgents-astock · doop · agent-native · YuE · kserve · the whole board →