Skip to content

PicoGK (patched fork)

Important

This is not the official PicoGK repository. It is a modified fork of leap71/PicoGK by LEAP 71, repackaged so that ANVIL can build against it. It is not affiliated with or endorsed by LEAP 71. If you are not specifically building ANVIL, use the upstream project instead.

PicoGK ("peacock") is a compact, open-source voxel geometry kernel created by LEAP 71. This fork changes only how the project is laid out and packaged: the kernel itself is LEAP 71's, unmodified apart from one STL export fix.

License: Apache 2.0 Fork of leap71/PicoGK Targets .NET 9.0 Platforms: Windows x64 and macOS arm64 CI build status

Which repository do you want?

You want to... Go to
Use PicoGK, get updates, file kernel bugs, ask questions leap71/PicoGK (canonical, actively maintained)
Build ANVIL, which needs this exact layout This repository
Report a problem with this repository's layout, submodules or committed binaries This repository (open an issue)

Upstream is the canonical project. It is where releases, support and new features come from. Nothing here is a substitute for it.

What this fork changes and why

This fork branched from upstream commit 709cdd4 (2026-01-02), one commit after upstream tag PicoGK-v1.7.7.5. Upstream has since moved on to the 2.x line; this fork does not track it.

Change Why
Kernel sources moved from the repo root into src/ Keeps the root free for the examples, docs and vendored ecosystem, so one checkout is a complete working environment
Prebuilt native runtime committed under runtime/native/ (win-x64, osx-arm64) ANVIL builds from a sibling source checkout, not from the NuGet package, so the native binaries have to be in the tree. Upstream ships them via NuGet instead
Whole LEAP 71 ecosystem vendored as git submodules under vendor/ Pins ShapeKernel, LatticeLibrary and the rest to known commits so a build is reproducible
Documentation set added under docs/ Practical API and setup reference assembled for this checkout. Written by this fork, not by LEAP 71
Binary STL post-scale fix in src/PicoGK_MeshIo.cs The post-scale parameter was not being applied when writing binary STL

The full list, and the attribution for every redistributed third-party binary, is in NOTICE.

Upstream PicoGK is not a drop-in substitute for this fork in the other direction either: swap it in and ANVIL will not build, because the source paths differ and the prebuilt DLLs are absent.

Why this fork exists: ANVIL

ANVIL is a Delta Robotics lattice tool, Apache-2.0. It references this repository by project path as a mandatory sibling checkout at ..\PicoGK, pinned at commit 3725be3. So the two repositories are expected to sit next to each other:

parent-folder/
├── anvil/
└── PicoGK/     <- this repository

This fork existing, at that layout and with those binaries committed, is what makes ANVIL buildable.

Quick Start

Requires the .NET 9 SDK. Windows x64 and macOS arm64 only: the native runtime is committed in this repo for those two platforms. For Linux or anything else, build PicoGKRuntime yourself and point src/PicoGK__Config.cs at it.

git clone --recursive https://github.com/Kevofehr/PicoGK.git
cd PicoGK
dotnet run --project examples\PicoGKExamples.csproj

--recursive is required. The examples project compiles vendor/LEAP71_ShapeKernel and vendor/LEAP71_LatticeLibrary sources directly, so without the submodules the build fails. If you already cloned without it:

git submodule update --init --recursive

The viewer opens and runs the default task in examples/Program.cs, currently a gyroid TPMS infill inside a loaded cylinder. An STL file is written to your log folder (C:\Users\<you>\ on Windows, ~/Documents/ on macOS and Linux). Close the viewer window to exit.

For the full setup walkthrough, your first model, and troubleshooting see docs/setup.md.

Minimal example

using PicoGK;
using System.Numerics;

class HelloWorld
{
    public static void Task()
    {
        Voxels body = Voxels.voxSphere(Vector3.Zero, 30f);
        Voxels hole = Voxels.voxSphere(Vector3.Zero, 25f);
        Voxels shell = body - hole;

        Library.oViewer().Add(shell);
        new Mesh(shell).SaveToStlFile(
            Path.Combine(Library.strLogFolder, "Hello.stl"));
    }
}

// In Program.cs:
Library.Go(0.5f, HelloWorld.Task);   // 0.5 = voxel size in mm

Documentation

All documentation lives in docs/. Start with the docs index. These docs describe this checkout; the official docs are at picogk.org/doc.

Topic File
Install + first model + troubleshooting docs/setup.md
What PicoGK is, architecture, ecosystem docs/picogk-overview.md
API reference (every public class and method) docs/api-reference.md
Coding for Engineers, book-length tutorial index docs/coding-for-engineers.md
Why the API is small on purpose docs/design-philosophy.md
Computational Engineering paradigm docs/computational-engineering.md
Real projects built with PicoGK (Noyron, RP/1) docs/leap71-projects.md
All public repos in the leap71 GitHub org docs/leap71-org.md
Vendored submodules guide (what each vendor/ lib does) docs/vendor.md
Flat URL index (official sites, blogs, deps) docs/external-links.md

Project Layout

src/                     Kernel C# source + PicoGK.csproj   (moved here by this fork)
runtime/                 Bundled native binaries + viewer HDR environments
examples/                Local runnable examples project
projects/                Your own build projects go here
vendor/                  Submodules, every leap71 repo (see docs/vendor.md)
docs/                    Documentation

See docs/setup.md for the full tree.

Contributing

Contributions to the kernel itself belong upstream, at leap71/PicoGK. This fork only exists for layout and packaging, and patches sent here will not reach upstream users.

Fork-specific fixes (build layout, submodule pins, committed binaries, the docs in docs/) are welcome. See CONTRIBUTING.md for how to build and the DCO sign-off requirement, CODE_OF_CONDUCT.md, SECURITY.md and SUPPORT.md.

Credits and external resources

PicoGK is the work of LEAP 71. It serves as the foundation of a broader technology stack for Computational Engineering, a paradigm LEAP 71 pioneered. The name stands for Pico (tiny) Geometry Kernel: a deliberately reduced yet powerful instruction set for computational geometry in engineering. It is used to generate some of the most advanced physical components imaginable, from electric motors and heat exchangers to 3D-printed rocket engines and bio-inspired structures.

License

Licensed under the Apache License 2.0 (SPDX: Apache-2.0). The full text is in LICENSE.

PicoGK is maintained by LEAP 71, copyright LEAP 71 2023-2026. It is built on top of OpenVDB and other Free and Open Source Software libraries.

NOTICE records that this repository is a modified distribution, what was modified, and the license of every third-party native binary redistributed under runtime/native/. Read it before redistributing anything from this repository. Example code under examples/ is CC0-1.0, per examples/LICENSE.md.

About

Patched fork of LEAP 71's PicoGK voxel geometry kernel, restructured under src/ with prebuilt native binaries so ANVIL can build against it. Upstream: leap71/PicoGK

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages