<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>PolyScript</title>
    <link>https://polyscript.objhub.org/en/</link>
    <description>Recent content on PolyScript</description>
    <generator>Hugo</generator>
    <language>en</language>
    <atom:link href="https://polyscript.objhub.org/en/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Getting Started</title>
      <link>https://polyscript.objhub.org/en/getting-started/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://polyscript.objhub.org/en/getting-started/</guid>
      <description>&lt;h2 id=&#34;try-polyscript&#34;&gt;Try PolyScript&lt;/h2&gt;&#xA;&lt;p&gt;You can try it right now in your browser. Open the Playground and start typing code.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;https://live.objhub.org&#34;&gt;PolyScript Playground&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;As you type code, the 3D model appears on the right in real time.&#xA;Just copy and paste the examples on this page to get started.&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-is-polyscript&#34;&gt;What is PolyScript?&lt;/h2&gt;&#xA;&lt;p&gt;PolyScript is a CAD DSL for writing parametric 3D models concisely.&#xA;The basic idea is simple: create a primitive, chain operations with &lt;code&gt;|&lt;/code&gt;, and select only the parts you need to modify.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tutorial</title>
      <link>https://polyscript.objhub.org/en/tutorial/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://polyscript.objhub.org/en/tutorial/</guid>
      <description>&lt;p&gt;You&amp;rsquo;ve grasped the basics in &amp;ldquo;Getting Started.&amp;rdquo; Now let&amp;rsquo;s get hands-on and build some models.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;lesson-1-building-an-enclosure&#34;&gt;Lesson 1: Building an Enclosure&lt;/h2&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll make a case for an electronics board. Learn the golden pattern of CAD modeling &amp;ndash; &amp;ldquo;create → select → modify&amp;rdquo; &amp;ndash; by doing it yourself.&lt;/p&gt;&#xA;&lt;h3 id=&#34;the-finished-model&#34;&gt;The finished model&lt;/h3&gt;&#xA;&lt;div class=&#34;ps-code-block highlight&#34;&gt;&#xA;  &lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-poly&#34; data-lang=&#34;poly&#34;&gt;box 100 60 40&#xA; | faces &amp;gt;Z | shell 2&#xA; | edges =Z | fillet 3&#xA; | edges &amp;lt;Z | fillet 1&#xA; | faces right&#xA; | circle 4 | cut&#xA; | faces left&#xA; | points (grid 2 4 10)&#xA; | hole 3&lt;/code&gt;&lt;/pre&gt;&#xA;  &lt;div class=&#34;ps-btn-group&#34;&gt;&#xA;    &lt;button class=&#34;ps-preview-btn&#34; data-code=&#34;Ym94IDEwMCA2MCA0MAogfCBmYWNlcyA&amp;#43;WiB8IHNoZWxsIDIKIHwgZWRnZXMgPVogfCBmaWxsZXQgMwogfCBlZGdlcyA8WiB8IGZpbGxldCAxCiB8IGZhY2VzIHJpZ2h0CiB8IGNpcmNsZSA0IHwgY3V0CiB8IGZhY2VzIGxlZnQKIHwgcG9pbnRzIChncmlkIDIgNCAxMCkKIHwgaG9sZSAz&#34;&gt;&amp;#x25B6; Preview&lt;/button&gt;&#xA;    &lt;a class=&#34;ps-edit-btn&#34; data-code=&#34;Ym94IDEwMCA2MCA0MAogfCBmYWNlcyA&amp;#43;WiB8IHNoZWxsIDIKIHwgZWRnZXMgPVogfCBmaWxsZXQgMwogfCBlZGdlcyA8WiB8IGZpbGxldCAxCiB8IGZhY2VzIHJpZ2h0CiB8IGNpcmNsZSA0IHwgY3V0CiB8IGZhY2VzIGxlZnQKIHwgcG9pbnRzIChncmlkIDIgNCAxMCkKIHwgaG9sZSAz&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&amp;#x270E; Edit&lt;/a&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Don&amp;rsquo;t try to take it all in at once. We&amp;rsquo;ll build it up one step at a time.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Language Reference</title>
      <link>https://polyscript.objhub.org/en/language/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://polyscript.objhub.org/en/language/</guid>
      <description>&lt;h2 id=&#34;overview&#34;&gt;Overview&lt;/h2&gt;&#xA;&lt;p&gt;PolyScript is a pipe-based language for parametric CAD modeling. Shapes are created with primitives and transformed through a chain of pipe operations.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;box 80 60 10 | fillet 2 | diff cylinder 10 10&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;When you write multiple shapes on separate lines, they are automatically combined (unioned) into a single shape.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;box 10 10 10&#xA;sphere 8&#xA;# → the two shapes are automatically unioned&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;To combine shapes explicitly, use &lt;code&gt;union [...]&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cheat Sheet</title>
      <link>https://polyscript.objhub.org/en/cheatsheet/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://polyscript.objhub.org/en/cheatsheet/</guid>
      <description>&lt;p&gt;Print this out and keep it handy. Probably.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;primitives&#34;&gt;Primitives&lt;/h2&gt;&#xA;&lt;h3 id=&#34;3d&#34;&gt;3D&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Function&lt;/th&gt;&#xA;          &lt;th&gt;Arguments&lt;/th&gt;&#xA;          &lt;th&gt;Example&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;box&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;w h d&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;box 80 60 10&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;cylinder&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;r h&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;cylinder 5 10&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;sphere&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;r&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;sphere 10&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;cone&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;r1 r2 h&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;cone 10 0 20&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;torus&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;r1 r2&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;torus 20 5&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;wedge&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;dx dy dz ltx&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;wedge 20 10 15 5&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;Position convention&lt;/strong&gt;: &lt;code&gt;box&lt;/code&gt;/&lt;code&gt;cylinder&lt;/code&gt;/&lt;code&gt;sphere&lt;/code&gt;/&lt;code&gt;cone&lt;/code&gt;/&lt;code&gt;torus&lt;/code&gt; are centered at the origin. &lt;code&gt;extrude h&lt;/code&gt; is bottom-aligned (z=0..h). When mixing both, use &lt;code&gt;| floor&lt;/code&gt; / &lt;code&gt;translate&lt;/code&gt; / &lt;code&gt;center:(true,true,false)&lt;/code&gt; to align them.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
