Skip to content

Welcome to renderlet

Welcome to renderlet!

We're excited to have you try the compiler preview to build your own renderlets.

For more information on renderlet, see the wander SDK docs.

Please don't share your link/id to the playground - it's unique to you!

Playground Overview

The playground gives you a visual interface over the renderlet compiler, so you can build renderlets and see the output in realtime.

See the Compiler Reference for more information on the compiler and the renderspec.

Some notes about the playground:

  • On first load, hit compile to initialize the 3D view with your first renderlet!
  • We have not yet implemented users / cloud storage. When we update or autoscale the backend, you will lose any renderlets you have built.
    • Similarly, if you reload the page, you will lose any changes to your yaml. The renderlet output may still be cached on the server.
    • Please save your renderspec YAML to file if you are doing anything interesting with it!
  • It's slow to compile on the server - we're working on it!
  • Feel free to Download your renderlet, and use the wander SDK to run / host it.

Sample renderlet

Here is a simple renderspec to build the example renderlet (the same one from when you initially load the page).

---
  grammars: 
    version: "0.1"
    grammar: 
      - 
        attr: 
          - 
            name: "depth"
            value: "8.0"
          - 
            name: "height"
            value: "28.0"
          - 
            name: "width"
            value: "15.0"
          - 
            name: "awning"
            value: "0.35"
          - 
            name: "color"
            value: "#a3875e"
        rule: 
          - 
            name: "Start"
            op:
              -
                size: 
                  centered: "true"
                  x: 
                    value: "width"
                    type: "absolute"
                  y: 
                    value: "depth"
                    type: "absolute"
                  z: 
                    value: "0"
                    type: "absolute"
              -
                extrude: 
                  height: "height"
              -
                comp: 
                  - 
                    name: "side"
                    value: "Facade"
                  - 
                    name: "top"
                    value: "Top"
          - 
            name: "Top"
            op:
              -
                offset: 
                  offsetDistance: "awning"
                  inside: "AwningExtrude"
          - 
            name: "AwningExtrude"
            op:
              -
                extrude: 
                  height: "awning"
              -
                comp: 
                  - 
                    name: "bottom"
                    value: "Wall"
                  - 
                    name: "side"
                    value: "Wall"
                  - 
                    name: "top"
                    value: "AwningTop"
          - 
            name: "AwningTop"
            op:
              -
                offset: 
                  offsetDistance: "-awning"
                  border: "Wall"
                  inside: "AwningInside"
          - 
            name: "AwningInside"
            op:
              -
                extrude: 
                  height: "-awning*0.8"
              -
                comp: 
                  - 
                    name: "side"
                    value: "Wall"
                  - 
                    name: "top"
                    value: "Roof"
          - 
            name: "Roof"
            op:
              -
                setupProjection: 
                  axes: "scope.xy"
                  width: 
                    value: "1"
                    type: "relative"
                  height: 
                    value: "1"
                    type: "relative"
              -
                texture: 
                  path: "roof2.png"
          - 
            name: "Wall"
            op:
              -
                color: 
                  s: "color"
      - 
        attr: 
          - 
            name: "FloorHeight"
            value: "2.1"
          - 
            name: "DividerHeight"
            value: "0.015"
          - 
            name: "EdgeWidth"
            value: "0.4"
          - 
            name: "InsideWidth"
            value: "1.8"
          - 
            name: "Window"
            value: "1.0"
          - 
            name: "Sill"
            value: "0.5"
        rule: 
          - 
            name: "Facade"
            op:
              -
                setupProjection: 
                  axes: "scope.xy"
                  width:
                    value: "5"
                    type: "absolute"
                  height: 
                    value: "5"
                    type: "absolute"
              -
                split: 
                  axis: "y"
                  sizes: 
                    - 
                      value: "FloorHeight"
                      name: "Floor"
                      repeat: "true"
                      type: "floating"
                    - 
                      value: "DividerHeight"
                      name: "Wall"
                      type: "floating"
          - 
            name: "Floor"
            op:
              -
                split: 
                  axis: "x"
                  sizes: 
                    - 
                      value: "EdgeWidth"
                      name: "Wall"
                      type: "floating"
                    - 
                      value: "InsideWidth"
                      name: "VerticalFrame"
                      repeat: "true"
                      type: "floating"
                    - 
                      value: "EdgeWidth"
                      name: "Wall"
                      type: "floating"
          - 
            name: "VerticalFrame"
            op:
              -
                split: 
                  axis: "y"
                  sizes: 
                    - 
                      value: "Sill"
                      name: "Wall"
                      type: "floating"
                    - 
                      value: "Window"
                      name: "HorizontalFrame"
                      type: "floating"
                    - 
                      value: "Sill"
                      name: "Wall"
                      type: "floating"
          - 
            name: "HorizontalFrame"
            op:
              -
                split: 
                  axis: "x"
                  sizes: 
                    - 
                      value: "Sill"
                      name: "WinFrame"
                      type: "floating"
                    - 
                      value: "Window"
                      name: "WinTexture"
                      type: "floating"
                    - 
                      value: "Sill"
                      name: "WinFrame"
                      type: "floating"
          -
            name: "WinFrame"
            op:
              -
                color:
                  s: "#aaaaaa"         
          - 
            name: "WinTexture"
            op:
              -
                setupProjection: 
                  axes: "scope.xy"
                  width: 
                    value: "1"
                    type: "relative"
                  height: 
                    value: "1"
                    type: "relative"
              -
                texture: 
                  path: "window_glass.png"