# Straight Skeleton

![](https://3521261292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LPHXQ1FZ8W_xSW4Nb61%2Fuploads%2Fgit-blob-ee9456f985063dd18300a40de6d56829a4522ac7%2FStraight_Skeleton.png?alt=media)

![](https://3521261292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LPHXQ1FZ8W_xSW4Nb61%2Fuploads%2Fgit-blob-8c7c305c1b274fd2ae506f8a1df8242731ab1fa3%2FStraight_Skeleton.png?alt=media) - [\[source code\]](https://github.com/ladybug-tools/honeybee-grasshopper-core/blob/master/honeybee_grasshopper_core/src/HB%20Straight%20Skeleton.py)

Get the straight skeleton and core/perimeter sub-faces for any planar geometry.

This component uses a modified version of the the polyskel package (<https://github.com/Botffy/polyskel>) by Armin Scipiades (aka. @Bottfy), which is, itself, a Python implementation of the straight skeleton algorithm as described by Felkel and Obdrzalek in their 1998 conference paper Straight skeleton implementation (<https://github.com/Botffy/polyskel/blob/master/doc/StraightSkeletonImplementation.pdf>).

### Inputs

* **floor\_geo \[Required]**

Horizontal Rhino surfaces for which the straight skeleton will be computed.

* **offset**

An optional positive number that will be used to offset the perimeter of the geometry to output core/perimeter polygons. If a value is plugged in here and the straight skeleton is not self-intersecting, perim\_poly and core\_poly will be ouput.

### Outputs

* **report**

Reports, errors, warnings, etc.

* **skeleton**

A list of line segments that represent the straight skeleton of the input \_floor\_geo. This will be output from the component no matter what the input \_floor\_geo is.

* **perim\_poly**

A list of breps representing the perimeter polygons of the input *floor\_geo. This will only be ouput if an offset* is input.

* **core\_poly**

A list of breps representing the core polygons of the input *floor\_geo. This will only be ouput if an offset* is input and the offset is not so great as to eliminate the core.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ladybug.tools/honeybee-primer/components/0_create/straight_skeleton.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
