Skip to content

CyberCraftLab/CCL_Toolbox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CCL_Toolbox

A research and teaching toolbox for the CyberCraft Lab, covering robotic 3D clay printing and ceramic fabrication, procedural geometry generation, AI/ML optimization, and robot toolpath planning for KUKA industrial robots.

Disclaimer — Use at Your Own Risk

This repository is a working mash-up of in-progress tools, sketches, and experiments. Some components are stable; others are early-stage scripts that may eventually graduate into dedicated tools. Code is provided "AS IS", without warranty of any kind, under the Apache License 2.0.

Several modules drive physical hardware — industrial robots, extruders, and lasers. Operating them carries real safety risk. You are solely responsible for verifying toolpaths, enforcing workspace limits, and following your local safety procedures before sending anything to a physical machine.

Overview

CCL_Toolbox bundles the lab's evolving software stack into a single repository so research, teaching, and prototyping can share infrastructure. Expect uneven maturity across folders: each project's own README (where present) is the source of truth for its current state.

Projects

1. Corals - Ceramic Coral Structure Generation

Generate 3D-printed ceramic coral-like structures with physics-based tapering and helical robot toolpaths.

Component Description
CoralGenerator_GH/ Grasshopper plugin (C#) for interactive coral generation
CoralGenerator_Plugin/ Rhino 8 command-line plugin
CoralGenerator_PY/ Python implementation (RoboDK-ready)

Key Features:

  • Organic axis curve generation with noise-based perturbation
  • Physics-based tube tapering (compressive stress analysis)
  • Helical toolpath generation with orientation frames
  • Configurable overhang angles, drift radius, and layer heights

2. Diff_Corals - Various Coral Type Generators

Procedural generation of 20 different coral morphologies across 5 categories, exploring diverse growth algorithms and colony formations.

Component Description
VariousCoralsGenerator/ Rhino 8 plugin (various_corals_generator.dll)
VariousCoralsGenerator_GH/ Grasshopper component (various_corals_generator_gh.gha)
various_coral_generator.py Unified Python script for all coral types
elkhorn_coral.py Standalone Elkhorn coral generator

Supported Coral Types (20 Types in 5 Categories):

Category SubType Name Description
0: Branching 0 Corymbose (Elkhorn) Table-like horizontal branching
1 Caespitose (Staghorn) Bushy 3D space colonization
2 Arborescent Tree-like trunk and crown
3 Digitate Finger-like projections
4 Bottlebrush Radiating bristle sub-branches
5 Thicket Dense compacted branches
1: Massive 0 Hemispherical Dome with corallite detail
1 Columnar (Phaceloid) Multiple columns from base
2 Cerioid Honeycomb shared walls
3 Plocoid Separate wall corallites
2: Plate/Foliose 0 Fan Planar gorgonian branching
1 Laminar Flat plates with wavy edges
2 Tiered Stacked overlapping plates
3 Foliose Upright leaf-like fronds
4 Explanate Branches fused into plate
3: Encrusting 0 Encrusting Sheet Thin veneer on substrate
1 Micro-Atoll Ring from tidal exposure
4: Meandroid 0 Meandroid (Brain) Continuous valley grooves
1 Flabello-Meandroid Valleys with separate walls
2 Ploco-Meandroid Short exsert valley walls

Key Features:

  • Two-level selection: Category + SubType for intuitive organization
  • Multiple generation algorithms (recursive branching, space colonization, reaction-diffusion)
  • Outputs centerlines and point clouds for ShrinkWrap/QuadRemesh mesh generation
  • Right-click menu to create Value List dropdown selectors (GH component)
  • Colony formations based on coral morphology research

3. Clay_ML_App - ML/RL Optimization System

Machine Learning system for autonomous clay printing optimization using reinforcement learning, OPC UA robot communication, and computer vision.

Module Description
clay_ml/robot/ KUKA robot control via OPC UA
clay_ml/camera/ Multi-camera capture (USB, RealSense)
clay_ml/rl/ PPO/SAC/TD3 agents (Stable-Baselines3)
clay_ml/data/ Training data collection and logging
clay_ml/geometry/ Rhino 3DM bridge and toolpath processing

Key Features:

  • Gymnasium-compatible RL environment
  • Real-time defect detection via computer vision
  • Live parameter adjustment during printing
  • Socket-based Rhino communication for design feedback

4. AR-Drill - Computer Vision & YOLO Object Detection

Educational computer vision and deep learning project for the SMARTBench course (Unit 02). Covers image processing fundamentals through to real-time AI-based object detection with depth estimation.

Component Description
cv_basics/ 7 foundational CV exercises (grayscale, binary, smoothing, edges, color detection, point clouds, face blurring)
yolo_pipeline/ 6-step YOLO pipeline (labeling, dataset prep, training, detection, real-time webcam, depth estimation)

Key Features:

  • OpenCV image processing fundamentals (RGB conversion, filtering, edge detection)
  • Color-based screwdriver angle detection (Computer Vision approach)
  • 3D point cloud visualization and distance measurement (Open3D)
  • Privacy protection via Haar Cascade face detection and Gaussian blurring
  • YOLO object detection with custom dataset labeling and training
  • Real-time webcam detection with adjustable confidence thresholds
  • MiDaS depth estimation integrated with YOLO detection

Setup:

cd AR-Drill
python -m venv venv
source venv/Scripts/activate  # Windows Git Bash
pip install -r requirements.txt

5. Thinwall_Spiral_Printing - Spiral Toolpath Generation

Generate spiral robot toolpaths around arbitrary geometry for thinwall ceramic printing.

Component Description
ThinwallSpiral_GH/ Grasshopper plugin for interactive use
ThinwallSpiral_Plugin/ Rhino 8 command-line plugin
Rhinoceros_Python_Script/ Native Rhino Python implementation

Key Features:

  • Cylindrical bounding box computation
  • Configurable layer height and radial offset
  • Ray-shooting surface intersection
  • Orientation ribbon surface generation

6. Tree_Supports - Branching Support Structure Generation

Generate organic, BambuLab-style tree support structures for 3D-printed and robotically-fabricated geometry.

Component Description
TreeSupportGenerator_GH/ Grasshopper plugin
Tree_Support_Rhino_Plugin/ Rhino 8 command-line plugin
BambuLab_Style/ Reference implementation modeled on BambuLab tree supports
tree_support_generator*.py Python iterations (V3 – V5) tracking algorithm evolution

Key Features:

  • Branching support trunks that merge as they descend toward the build plate
  • Configurable branch angles, merge thresholds, and contact tip density
  • Outputs both centerlines and meshable geometry for downstream toolpath planning

Hardware Targets

Component Specification
Robot KUKA KR 10 R1100-2 (10kg payload, 1100mm reach)
Extruder Stoneflower RAM BIG 2.5L
Nozzle 2-4mm diameter
Communication OPC UA protocol
Vision USB cameras + Intel RealSense depth

Technology Stack

  • CAD/Design: Rhino 8, Grasshopper
  • Plugins: .NET Framework 4.8 (C#)
  • ML/RL: PyTorch, Stable-Baselines3, Gymnasium
  • Robotics: OPC UA (asyncua), RoboDK
  • Vision: OpenCV, Intel RealSense SDK
  • CV/Detection: OpenCV, YOLO (Ultralytics), MiDaS, Open3D
  • Languages: C#, Python 3.10+

Installation

Grasshopper Plugins

  1. Build with Visual Studio 2022 or dotnet build
  2. Copy .gha files to %APPDATA%\Grasshopper\Libraries\
  3. Restart Rhino/Grasshopper
  4. Find components under: CYARC > Fabrication or CYARC > Generators

Rhino Plugins

  1. Build with Visual Studio 2022 or dotnet build
  2. Copy .dll or .rhp files to %APPDATA%\McNeel\Rhinoceros\8.0\Plug-ins\
  3. Restart Rhino
  4. Run commands: CoralGenerator, VariousCoralsGenerator, ThinwallSpiral

Clay_ML_App

cd Clay_ML_App
pip install -e .
# or
pip install -r requirements.txt

AR-Drill

cd AR-Drill
python -m venv venv
source venv/Scripts/activate  # Windows Git Bash
# or: venv\Scripts\activate   # Windows CMD
pip install -r requirements.txt

Repository Structure

CCL_Toolbox/
├── Corals/
│   ├── CoralGenerator_GH/          # Grasshopper plugin
│   ├── CoralGenerator_Plugin/      # Rhino command plugin
│   └── CoralGenerator_PY/          # Python implementation
│
├── Diff_Corals/
│   ├── VariousCoralsGenerator/     # Rhino plugin (20 coral types)
│   │   ├── Core/                   # CoralTypes, GeneratorHelpers
│   │   └── Generators/             # Category-specific generators
│   ├── VariousCoralsGenerator_GH/  # Grasshopper component
│   │   ├── Core/                   # CoralTypes, GeneratorHelpers
│   │   └── Generators/             # Category-specific generators
│   ├── various_coral_generator.py  # Unified Python script
│   └── elkhorn_coral.py            # Standalone Elkhorn script
│
├── Clay_ML_App/
│   ├── clay_ml/                    # Main Python package
│   │   ├── robot/                  # Robot control
│   │   ├── camera/                 # Vision system
│   │   ├── rl/                     # Reinforcement learning
│   │   ├── data/                   # Data management
│   │   └── geometry/               # Geometry bridge
│   ├── examples/                   # Training scripts
│   ├── models/                     # Saved models
│   └── tests/                      # Unit tests
│
├── AR-Drill/
│   ├── cv_basics/                  # 7 CV exercise scripts
│   ├── yolo_pipeline/              # 6-step YOLO pipeline
│   ├── images/                     # Input images
│   ├── dataset/                    # Generated training dataset
│   └── requirements.txt
│
├── Thinwall_Spiral_Printing/
│   ├── ThinwallSpiral_GH/          # Grasshopper plugin
│   ├── ThinwallSpiral_Plugin/      # Rhino command plugin
│   └── Rhinoceros_Python_Script/   # Python implementation
│
├── Tree_Supports/
│   ├── TreeSupportGenerator_GH/    # Grasshopper plugin
│   ├── Tree_Support_Rhino_Plugin/  # Rhino command plugin
│   ├── BambuLab_Style/             # BambuLab-style reference implementation
│   └── tree_support_generator*.py  # Python iterations (V3 – V5)
│
├── LICENSE                         # Apache License 2.0
└── README.md

Getting Started

  1. Clone the repository.
  2. Install Rhino 8 with Grasshopper for the C# / Grasshopper-based tools.
  3. Build and install the plugins you need (see Installation above).
  4. For Python tooling, create a virtual environment per project and install its requirements.txt.
  5. Start with the example scripts in Clay_ML_App/examples/ or the per-project READMEs.

Contributing

Issues and pull requests are welcome. A few conventions we try to follow:

  • Commits: prefix with the affected component, e.g. [Corals] Add physics-based tapering, [Clay_ML] Fix OPC UA reconnection.
  • Code style: PEP 8 for Python (type hints where practical); Microsoft C# conventions for .NET.
  • Tests / validation: validate Grasshopper components with sample geometry; for ML changes, include at least one training run; for robot-facing code, describe how it was tested (simulator vs. hardware).
  • Safety: never commit production OPC UA endpoints, controller IPs, or other site-specific credentials. Keep workspace limits enforced in any robot-facing code.

Safety Notice

Several components in this repository control or generate paths for physical equipment — KUKA industrial robots, ceramic extruders, lasers, and depth-camera rigs. Robotic motion can cause injury or property damage.

Before running any code that drives hardware:

  • Validate toolpaths in simulation (RoboDK or equivalent) before sending them to the physical robot.
  • Keep workspace limits, soft stops, and e-stops enforced and within reach.
  • Treat ML/RL agents that command real motion as untrusted controllers — gate them behind hard workspace limits, not just soft ones.
  • Follow your institution's safety procedures regardless of what this code permits.

The authors and CyberCraft Lab accept no liability for damage, injury, or loss arising from use of this software. See LICENSE for the full disclaimer of warranty.


License

Licensed under the Apache License, Version 2.0. See the LICENSE file for the full text.

Copyright 2026 CyberCraft Lab

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

CCL_Toolbox — Advancing robotic ceramic fabrication through integrated design, simulation, and machine learning.

About

CyberCraft Lab Toolbox: Rhino/GH plugins, ML clay printing, AR drilling, tree supports

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors