#lang 3d-exploration

About this Language

Use this language to create your own 3D worlds to explore!

  • Customize environments with presets, dressing, colors and more!
  • Add completely customizable 3D objects!
  • Add particle generators; like dust, rain or flying dragons!
  • Animate shapes and 3D models in your world!
To Install

Package Source: https://github.com/thoughtstem/TS-VR-Languages.git?path=3d-exploration

Need a reminder how to install a package? Check out this video tutorial.


Hello World 1

Code a basic 3d scene.

(exploration-scene)

Animations 1

Code a scene with a random-colored cylinder that continuously grows and shrinks.

(define (my-cylinder)
 (basic-cylinder
  #:color (random-color)
  #:animations-list (do-many
                     (animate-scale #:to 5))))

(exploration-scene
#:ground-objects (list
                  (my-cylinder)))

Animations 2

Code a scene with a cone that moves back and forth several times.

(define (my-cone)
 (basic-cone
  #:animations-list (do-many
                     (animate-position
                      #:loops 5
                      #:to (position 0 0 0)))))

(exploration-scene
#:sky-objects (list (my-cone)))

Animations 3

Code a scene with a random-colored box that grows and shrinks while rotating back and forth.

(define (my-box)
 (basic-box
  #:color (random-color)
  #:animations-list (do-many
                     (animate-rotation)
                     (animate-scale #:to 3))))

(exploration-scene
#:ground-objects (list
                  (my-box)))

Animations 4

Code a scene with an Earth sphere rotating around a Sun sphere.

(define (earth)
 (basic-sphere
  #:position (position 25 0 0)
  #:texture earth-tex))

(define (sun)
 (basic-sphere #:texture sun-tex
               #:radius 5
               #:animations-list (do-many
                                  (animate-rotation))
               #:components-list (list
                                  (earth))))

(exploration-scene
#:sky-objects (list
               (sun)))

Animations 5

Code a scene with a bird flying away.

(define (my-model)
 (3d-model #:model bird
           #:position (position 0 0 0)
           #:animations-list (do-many
                              (animate-position
                               #:to (position 100 100 100)
                               #:loops 0))))

(exploration-scene
#:ground-objects (list
                  (my-model)))

Environment 1

Code a scene with a volcano environment.

(exploration-scene
#:environment (basic-environment
               #:preset 'volcano))

Environment 2

Code a scene with an environment with many, small mushrooms.

(exploration-scene
#:environment (basic-environment
               #:dressing 'mushrooms
               #:dressing-amount 25
               #:dressing-scale 0.5))

Environment 3

Code a scene with a spiky ground that has a red and black checkerboard texture.

(exploration-scene
#:environment (basic-environment
               #:ground 'spikes
               #:ground-texture 'checkerboard
               #:ground-color-1 'red
               #:ground-color-2 'black))

Environment 4

Code a scene with a foggy egyptian environment, and both horizon and sky colors.

(exploration-scene
#:environment (basic-environment
               #:preset 'egypt
               #:horizon-color 'orange
               #:sky-color 'dark-blue
               #:fog 0.6))

Ground Objects 1

Code a scene with a red, semi-transparent sphere on the ground.

(define (my-sphere)
 (basic-sphere #:color 'red
               #:opacity 0.75))

(exploration-scene
#:ground-objects (list (my-sphere)))

Ground Objects 2

Code a scene with a large cylinder and a large blue box.

(define (my-cylinder)
 (basic-cylinder #:radius 3
                 #:height 5))

(define (my-box)
 (basic-box #:scale 5
            #:color 'blue))

(exploration-scene
#:ground-objects (list (my-cylinder)
                       (my-box)))

Ground Objects 3

Code a scene with 3 large orange oceans.

(define (my-ocean)
 (basic-ocean #:color 'orange
              #:width 30
              #:depth 20))

(exploration-scene
#:ground-objects (list (my-ocean)
                       (my-ocean)
                       (my-ocean)))

Ground Objects 4

Code a scene with a sphere that changes color when you click on it.

(define (my-sphere)
 (basic-sphere
  #:color 'red
  #:on-mouse-click (do-many
                    (color 'blue))))

(exploration-scene
#:ground-objects (list (my-sphere)))

Ground Objects 5

Code a scene with a cylinder that changes color and grows when look at and reverts back when not looked at.

(define (my-cylinder)
 (basic-cylinder
  #:color 'orange
  #:on-mouse-enter (do-many
                    (color 'yellow)
                    (radius 5))
  #:on-mouse-leave (do-many
                    (color 'orange)
                    (radius 1))))

(exploration-scene
#:ground-objects (list (my-cylinder)))

Hello World 1

Code a basic 3d scene.

(exploration-scene)

Particles 1

Code a scene with a particle geyser.

(exploration-scene
#:ground-objects (list (basic-particles)))

Particles 2

Code a scene with large, slow sky particles that disappear before they hit the ground.

(define (my-particles)
 (basic-particles
  #:speed 5
  #:size 5
  #:age 3))

(exploration-scene
#:sky-objects (list
               (my-particles)))

Particles 3

Code a scene with heavy rain.

(define (my-particles)
 (basic-particles #:preset 'rain
                  #:count 5000))

(exploration-scene
#:sky-objects (list
               (my-particles)))

Particles 4

Code a scene with an egyptian environment and a lot of dust.

(define (my-particles)
 (basic-particles #:preset 'dust
                  #:count 4000))

(exploration-scene
#:environment (basic-environment
               #:preset 'egypt)
#:ground-objects (list
                  (my-particles)))

Particles 5

Code a scene with a forest environment that has dark horizon and sky colors, some fog, as well as many custom image particles.

(define (my-environment)
 (basic-environment
  #:preset 'forest
  #:horizon-color 'dark-blue
  #:sky-color 'black
  #:fog 0.5))

(define (my-particles)
 (basic-particles #:preset 'dust
                  #:image dragon-image
                  #:count 2000))

(exploration-scene
#:environment (my-environment)
#:sky-objects (list
               (my-particles)))

Sky Objects 1

Code a scene with a cone in the sky that has random scale, color, and rotation.

(exploration-scene
#:sky-objects (list (basic-cone
                     #:scale (random-scale)
                     #:color (random-color)
                     #:rotation (random-rotation))))

Sky Objects 2

Code a scene with 2 sky objects: a highly-transparent, random-colored object and a 3D model.

(define (my-sphere)
 (basic-sphere
  #:color (random-color)
  #:opacity 0.2))

(exploration-scene
#:sky-objects (list (my-sphere)
                    thoughtstem-logo))

Sky Objects 3

Code a scene with several 3D models in the sky.

(exploration-scene
#:sky-objects (list bird
                    astronaut
                    sword))

Sky Objects 4

Code a scene with a fog-free egyptian environment and stars.

(exploration-scene
#:environment (basic-environment
               #:preset 'egypt
               #:fog 0)
#:stars (basic-stars))

Sky Objects 5

Code a scene with a fog-free forest environment, stars, and dark horizon and sky colors.

(exploration-scene
#:environment (basic-environment
               #:preset 'forest
               #:horizon-color 'dark-blue
               #:sky-color 'black
               #:fog 0)
#:stars (basic-stars))