<commit_before># **PlastiScript**
## 3D Modeling Language
*Version 0.0.1*

## **Language attempt**
This language is intended as a way of create parametric 3D models using a dialect of javascript.
It is based on OpenJSCad and OpenSCad projects. 
It has similar approach to OpenJSCad, but with small sintax differences, aimed to get a clear code.   

## Table of content
<!-- TOC -->

- [**PlastiScript**](#plastiscript)
    - [3D Modeling Language](#3d-modeling-language)
    - [**Language attempt**](#language-attempt)
    - [Table of content](#table-of-content)
    - [**Getting started**](#getting-started)
        - [**Installation**](#installation)
        - [**Configuration**](#configuration)
        - [**Creating the first model**](#creating-the-first-model)
        - [**The main function**](#the-main-function)
        - [**main function argument**](#main-function-argument)
        - [**Support to include files**](#support-to-include-files)
    - [**3D Primitives**](#3d-primitives)
        - [**Cube**](#cube)
            - [*Examples*](#examples)
        - [**Sphere**](#sphere)
            - [*Examples*](#examples)
        - [**Cylinder**](#cylinder)
                - [**Cylinder**](#cylinder)
                - [**Cone**](#cone)
            - [*Examples*](#examples)
        - [**torus**](#torus)
        - [**polyhedron**](#polyhedron)
            - [*Examples*](#examples)
        - [**Text**](#text)
    - [3D Object Manipulation](#3d-object-manipulation)
        - [**translate**](#translate)
        - [**rotate, rotateX, rotateY, rotateZ**](#rotate-rotatex-rotatey-rotatez)
        - [**scale**](#scale)
        - [**mirror, mirrorX, mirrorY, mirrorZ**](#mirror-mirrorx-mirrory-mirrorz)
        - [**matrix transform**](#matrix-transform)
        - [**union**](#union)
        - [**subtract**](#subtract)
        - [**intersect**](#intersect)
        - [*Examples of 3D object manipulations*](#examples-of-3d-object-manipulations)
    - [**2D Primitives**](#2d-primitives)
        - [**circle/ellipsis**](#circleellipsis)
            - [*Example*](#example)
        - [**square/rectangle**](#squarerectangle)
            - [*Example*](#example)
        - [**polygon**](#polygon)
            - [*Example*](#example)
        - [**paths**](#paths)
        - [**polyline**](#polyline)
        - [**arc**](#arc)
        - [**bezier**](#bezier)
    - [**2D Object Manipulation**](#2d-object-manipulation)
        - [**concat**](#concat)
        - [**close**](#close)
        - [**toPolygon**](#topolygon)
        - [**expandToPolygon**](#expandtopolygon)
    - [**Going from 2D -> 3D: extruding**](#going-from-2d-3d-extruding)
            - [**linear extruding ( linear_extrude)**](#linear-extruding-linearextrude)
            - [**rotational extruding (rotateExtrude)**](#rotational-extruding-rotateextrude)
            - [**path extruding (rectangularExtrude)**](#path-extruding-rectangularextrude)
    - [**Missing subjects**](#missing-subjects)

<!-- /TOC -->

## **Getting started**

### **Installation**

### **Configuration**

### **Creating the first model**

### **The main function**

### **main function argument**

### **Support to include files**

## **3D Primitives**
The 3D primitives are the building blocks of the design. It includes cubes( prisms), cylinders( cones), spheres and polyhedrons.    

### **Cube**
Draw a solid prismatical object.  
Syntax:
``` 
var o = cube(options);
```
where options could contain  
|Parameter/type|Description|  
|:---|:---|  
|esto es |una prueba|

|`radius: [w,l,h]`   |optional, default to [0.5,0.5,0.5]. Defines the radius of the cube, based in its center |  
|`size: [w,l,h]`|optional, default to [1,1,1], Defines the size of each cube side. |  
|`center: [x,y,z]`|optional, default to [0,0,0]. Defines the centre of the cube. |  
|`corner1: [x,y,z]`|optional without default. Defines a base corner for the cube. |  
|`corner2: [x,y,z]`|optional without default. Defines the oposite corner for the cube. |  
|`roundRadius: number`|optional, default 0 not rounded. When is set to a positive value the cube is rounded. |  
|`resolution: integer`|optional, only has meaning if roundRadius is defined. Defines the number of facets in rounded part. |    

**Note** Not all combinations of radius, size, center and corners the parameters could be used togheter. The following is the list of valid parameter combinations

* radius (center is defaulted to [0,0,0]).
* radius and center.
* radius and corner1.
* size (center is defaulted to [0,0,0]).
* size and center.
* size and corner1.
* corner1 and corner2.
* center (size is defaulted to [1,1,1]).
* corner1 (size is defaulted to [1,1,1]).<commit_msg>aaaaaa<commit_after># **PlastiScript**
## 3D Modeling Language
*Version 0.0.1*

## **Language attempt**
This language is intended as a way of create parametric 3D models using a dialect of javascript.
It is based on OpenJSCad and OpenSCad projects. 
It has similar approach to OpenJSCad, but with small sintax differences, aimed to get a clear code.   

## Table of content
<!-- TOC -->

- [**PlastiScript**](#plastiscript)
    - [3D Modeling Language](#3d-modeling-language)
    - [**Language attempt**](#language-attempt)
    - [Table of content](#table-of-content)
    - [**Getting started**](#getting-started)
        - [**Installation**](#installation)
        - [**Configuration**](#configuration)
        - [**Creating the first model**](#creating-the-first-model)
        - [**The main function**](#the-main-function)
        - [**main function argument**](#main-function-argument)
        - [**Support to include files**](#support-to-include-files)
    - [**3D Primitives**](#3d-primitives)
        - [**Cube**](#cube)
            - [*Examples*](#examples)
        - [**Sphere**](#sphere)
            - [*Examples*](#examples)
        - [**Cylinder**](#cylinder)
                - [**Cylinder**](#cylinder)
                - [**Cone**](#cone)
            - [*Examples*](#examples)
        - [**torus**](#torus)
        - [**polyhedron**](#polyhedron)
            - [*Examples*](#examples)
        - [**Text**](#text)
    - [3D Object Manipulation](#3d-object-manipulation)
        - [**translate**](#translate)
        - [**rotate, rotateX, rotateY, rotateZ**](#rotate-rotatex-rotatey-rotatez)
        - [**scale**](#scale)
        - [**mirror, mirrorX, mirrorY, mirrorZ**](#mirror-mirrorx-mirrory-mirrorz)
        - [**matrix transform**](#matrix-transform)
        - [**union**](#union)
        - [**subtract**](#subtract)
        - [**intersect**](#intersect)
        - [*Examples of 3D object manipulations*](#examples-of-3d-object-manipulations)
    - [**2D Primitives**](#2d-primitives)
        - [**circle/ellipsis**](#circleellipsis)
            - [*Example*](#example)
        - [**square/rectangle**](#squarerectangle)
            - [*Example*](#example)
        - [**polygon**](#polygon)
            - [*Example*](#example)
        - [**paths**](#paths)
        - [**polyline**](#polyline)
        - [**arc**](#arc)
        - [**bezier**](#bezier)
    - [**2D Object Manipulation**](#2d-object-manipulation)
        - [**concat**](#concat)
        - [**close**](#close)
        - [**toPolygon**](#topolygon)
        - [**expandToPolygon**](#expandtopolygon)
    - [**Going from 2D -> 3D: extruding**](#going-from-2d-3d-extruding)
            - [**linear extruding ( linear_extrude)**](#linear-extruding-linearextrude)
            - [**rotational extruding (rotateExtrude)**](#rotational-extruding-rotateextrude)
            - [**path extruding (rectangularExtrude)**](#path-extruding-rectangularextrude)
    - [**Missing subjects**](#missing-subjects)

<!-- /TOC -->

## **Getting started**

### **Installation**

### **Configuration**

### **Creating the first model**

### **The main function**

### **main function argument**

### **Support to include files**

## **3D Primitives**
The 3D primitives are the building blocks of the design. It includes cubes( prisms), cylinders( cones), spheres and polyhedrons.    

### **Cube**
Draw a solid prismatical object.  
Syntax:
``` 
var o = cube(options);
```
where options could contain  
|Parameter|Description|  
|:---|:---|  
|esto es |una prueba|

|`radius: [w,l,h]`   |optional, default to [0.5,0.5,0.5]. Defines the radius of the cube, based in its center |  
|`size: [w,l,h]`|optional, default to [1,1,1], Defines the size of each cube side. |  
|`center: [x,y,z]`|optional, default to [0,0,0]. Defines the centre of the cube. |  
|`corner1: [x,y,z]`|optional without default. Defines a base corner for the cube. |  
|`corner2: [x,y,z]`|optional without default. Defines the oposite corner for the cube. |  
|`roundRadius: number`|optional, default 0 not rounded. When is set to a positive value the cube is rounded. |  
|`resolution: integer`|optional, only has meaning if roundRadius is defined. Defines the number of facets in rounded part. |    

**Note** Not all combinations of radius, size, center and corners the parameters could be used togheter. The following is the list of valid parameter combinations

* radius (center is defaulted to [0,0,0]).
* radius and center.
* radius and corner1.
* size (center is defaulted to [0,0,0]).
* size and center.
* size and corner1.
* corner1 and corner2.
* center (size is defaulted to [1,1,1]).
* corner1 (size is defaulted to [1,1,1]).
{'fraction_non_alphanumeric': 0.18609385043925433, 'fraction_numerical': 0.011784872509106493, 'mean_word_length': 3.1898563734290843, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3882297', 'n_tokens_mistral': 3210, 'n_tokens_neox': 2763, 'n_words': 743}