fullseye

OSS landscape notes (verified 2026-09-21)

Data file: oss_landscape.json (85 rows, 84 verified, 1 unverified). Sources: GitHub REST API (gh api repos/<owner>/<repo>, authenticated, fields license.spdx_id, pushed_at, stargazers_count, description, language), repos/<r>/license and repos/<r>/readme for repos where GitHub reports NOASSERTION, GitLab API v4 (?license=true), PyPI JSON, and the official sites listed in each row’s source. Star counts and dates are as returned on 2026-09-21.

Not verified / verification caveats

Licence classes (Fullseye = Apache-2.0; interop only, never vendoring)

Interop through file formats, subprocess, or an optional import does not create a derivative work in the permissive cases and is the normal way to use the copyleft tools without licence coupling. The classes below matter for (1) what may be linked into a Fullseye process and (2) what an AI assistant may recommend for a commercial user.

Permissive (MIT / BSD / Apache / MPL / Boost) — safe to import optionally

CadQuery (Apache-2.0), build123d (Apache-2.0), Manifold (Apache-2.0), sdf/fogleman (MIT), libfive core + Python bindings (MPL-2.0; Studio/guile are GPL), trimesh (MIT), Open3D (MIT), PCL (BSD-3), PyVista (MIT), Draco (Apache-2.0), lib3mf (BSD-2), OpenCV (Apache-2.0), scikit-image (BSD-3), anomalib (Apache-2.0), DICe (BSD-3-style), muDIC (MIT), TIGRE (BSD-3), tomopy (BSD-3-style), Kalibr (BSD-3-style), ROS 2 core (Apache-2.0), MoveIt 2 (BSD-3), Drake (BSD-3), MuJoCo (Apache-2.0), Robotics Toolbox for Python (MIT), KISS-ICP (MIT), Cartographer (Apache-2.0), PX4 (BSD-3), ODrive (MIT), SimpleFOC (MIT), tsfresh (MIT), PyOD (BSD-2), river (BSD-3), DaSPi (BSD-3 per GitHub / MIT per PyPI), SfePy (BSD-3), open62541 (MPL-2.0), pymodbus (BSD-3), ngspice core (modified BSD, mixed).

Weak copyleft (LGPL) — dynamic linking / import is fine, do not copy code

OCCT (LGPL-2.1 + exception), pythonocc-core (LGPL-3.0), FreeCAD and its CAM workbench (LGPL-2.1), opencamlib (LGPL-2.1), FEniCSx/DOLFINx (LGPL-3.0), CGAL kernel/support (LGPL-3.0-or-later; most algorithms are GPL — check per header).

Strong copyleft (GPL) — use via subprocess / files only

OpenSCAD (GPL-2.0-or-later), MeshLab and PyMeshLab (GPL-3.0), libigl include/igl/copyleft/ only (cgal, tetgen, quadprog, marching_cubes — GPL; the core headers carry MPL-2.0 headers and belong in the permissive class even though the GitHub API reports GPL-3.0 for the repo), CGAL algorithms (GPL-3.0-or-later), Klipper (GPL-3.0), Marlin (GPL-3.0), pygcode (GPL-3.0), grbl / grblHAL (GPL-3.0-or-later), LinuxCNC (GPL-2.0), pycam (GPL-3.0-or-later), ASTRA (GPL-3.0), OpenPIV (GPL-3.0), SLStudio (GPL or commercial), OpenPnP (GPL-3.0), pyspc (GPL-3.0), CalculiX (GPL-2.0), Elmer (GPL-2.0), OpenFOAM (GPL-3.0), code_aster (GPL-3.0), PrePoMax (GPL-3.0-or-later), KiCad (GPL-3.0-or-later), OpenPLC v3 (GPL-3.0), SOEM (GPL-3.0), IgH EtherCAT (GPL-2.0-or-later).

Note: importing a GPL Python package (e.g. pyspc, pygcode, pymeshlab, openpiv) into an Apache-2.0 process is the contested case; keep these behind subprocess or do not recommend them for commercial users. Format-level interop (STL/3MF/G-code/PLY/OBJ/STEP files) is unaffected.

Network copyleft (AGPL) — subprocess / HTTP API only

CuraEngine, PrusaSlicer, OrcaSlicer, Slic3r, OctoPrint, Obico server, ImplicitCAD (all AGPL-3.0).

Not open source

MeshLib (source-available, non-commercial free, commercial paid).

Gap observations (areas where no maintained, permissive OSS was found in this survey)

  1. SPC in Python. pyspc is GPL-3.0 and last pushed 2023-01-12; PyPI spc last released 2009-01-26; DaSPi (BSD-3/MIT, 7 stars, 2.2.0 on 2026-09-04) is the only actively released package found and it is a single-maintainer project. A numpy-first, permissively licensed control-chart / capability / Western-Electric-rules module is not established. The GitHub search for “spc statistical process control python” returns mostly student and one-off notebooks (0–7 stars). This is a positioning opportunity for Fullseye’s spc family.
  2. Surface roughness parameters (ISO 4287/25178: Ra, Rz, Sa, Sq, Sdr, filtering with Gaussian ISO 16610). None of the surveyed mesh/point-cloud libraries (trimesh, Open3D, PCL, PyVista, MeshLab) expose roughness parameters as a documented feature; no dedicated maintained Python package was found in this survey (not searched exhaustively — verify before claiming “none exists”).
  3. Layer-camera print inspection. Obico (AGPL) covers spaghetti/failure detection from a webcam as a server product; no permissive library-level component for per-layer image vs. slice comparison (G-code layer ↔ camera frame registration) was found. Interop route: G-code from CuraEngine/PrusaSlicer/OrcaSlicer (AGPL, subprocess) → Fullseye printpath for layer geometry → camera comparison ops.
  4. Weld bead / seam inspection. Not covered by any surveyed project; anomalib (Apache-2.0) provides generic unsupervised anomaly detection and is the closest reusable component (image-level, learned), not a geometric bead-profile measurement.
  5. DIC. DICe (BSD-3-style) is a C++ application last pushed 2024-03-11; muDIC (MIT) last pushed 2022-02-08; py2DIC has no licence. There is no actively maintained permissive Python DIC library, so a Fullseye DIC op is not displacing anything current.
  6. Structured light. SLStudio is GPL/commercial and C++/Qt. No permissive Python structured light (phase-shift / Gray-code decoding + calibration) library appeared in this survey.
  7. CT reconstruction is well covered, all permissive except ASTRA: TIGRE (BSD-3, GPU), tomopy (BSD-3-style), ASTRA (GPL-3.0). A Fullseye CT op should position as “numpy-only fallback / small-scale teaching path; hand off to TIGRE/tomopy for production volumes”.
  8. Mesh booleans / implicit modelling are well covered by Manifold (Apache-2.0), libfive core (MPL-2.0), sdf (MIT, last push 2024-08-10), CadQuery/build123d (Apache-2.0 on OCCT LGPL). Fullseye SDF/CSG ops should interoperate (mesh in/out via trimesh, STEP via CadQuery) rather than compete.
  9. Slicing / G-code. All full slicers are AGPL-3.0; lib3mf (BSD-2, C with bindings) is the permissive path for 3MF; pygcode is GPL-3.0 and last pushed 2022-09-19, so a permissive G-code parser/writer in Python is a gap that Fullseye printpath fills.
  10. Sensor-level simulation (dToF, FMCW radar, light-field) and bearing/acoustic diagnosis were not covered by any project in the requested categories; no maintained permissive Python package was surveyed for them (outside the scope of the requested list — verify separately before claiming a gap).
  11. Industrial protocols are covered and mostly permissive: open62541 (MPL-2.0), pymodbus (BSD-3). EtherCAT masters (SOEM GPL-3.0, IgH GPL-2.0-or-later) are copyleft, so recommend them as separate processes bridging to Fullseye via OPC UA / Modbus / files.

Follow-up (2026-09-21): the four areas first flagged as uncovered

26 rows appended (25 GitHub-verified via gh api repos/<r> + repos/<r>/license, 1 official site: gwyddion.net + SourceForge). Categories used: roughness, sensors, diagnosis. Motion-magnification rows are filed under diagnosis (name suffix [motion magnification]) because only three category values were requested and the tools are used for vibration/structural diagnosis. Existing rows untouched (85 -> 111 total, 110 verified, 1 unverified).

Surface roughness / texture — NOT a gap for ISO 25178 field parameters

dToF / SPAD / FMCW radar / light-field / TCSPC — partly covered

Bearing / rotating-machinery diagnosis — still a gap at library level

Motion magnification — NOT a gap (many implementations), but licence/maintenance issues