# Welcome to Karamba3D Scripting Guide

**Using Karamba3D in C# Scripts**

This manual provides guidance on utilizing Karamba3D within C# scripts. As C# is part of the .NET ecosystem, the information presented here also applies to other .NET-based scripting languages, such as IronPython, F#, Visual Basic, or any language built on the Common Language Infrastructure (CLI).

**Python Support in Karamba3D**

* **IronPython Examples**: [Section 2.7](https://scripting.karamba3d.com/2.-scripting-with-karamba3d-inside-grasshopper/2.7-the-ironpython-component) includes example scripts written in IronPython. While IronPython is compatible with the .NET framework, its utility is limited due to a smaller selection of available libraries.
* **CPython in Rhino 8**: With Rhino 8, it is now possible to embed CPython scripts in Grasshopper definitions. CPython supports a comprehensive set of libraries, making it significantly more versatile than IronPython. Examples leveraging Grasshopper's new **"Python 3 Component"** are provided in [Section 2.8](https://scripting.karamba3d.com/2.-scripting-with-karamba3d-inside-grasshopper/2.8-the-python-3-component).

**Scope of the Manual**

This manual does not serve as an introduction to C# or Python. For beginners, refer to resources such as [\[1\]](https://scripting.karamba3d.com/bibliography) or [\[3\]](https://scripting.karamba3d.com/bibliography). For advanced topics, which are not essential for understanding this manual but may be beneficial, see the highly regarded **“C# in Depth”** [\[4\]](https://scripting.karamba3d.com/bibliography).

{% hint style="info" %}
Examples detailed in this guide can be found in the "[Karamba3D Scripting Examples Github](https://github.com/karamba3d/K3D_Scripting)"-collection.
{% endhint %}

## Citing Karamba3D

In case you use Karamba3D for your scientific work, please cite the following paper:

> Preisinger, C. (2013), *Linking Structure and Parametric Geometry*. Architectural Design, 83: 110-113\
> DOI: 10.1002/ad.1564.

## Disclaimer

Although being tested thoroughly Karamba3D probably contains errors – therefore no guarantee can be given that Karamba3D computes correct results. Use of Karamba3D is entirely at your own risk. Please read the [license agreement](https://www.karamba3d.com/buy/license-agreement/) that comes with Karamba3D in case of further questions.

This manual is written by Clemens Preisinger.\
Editing by Georg Lobe.
