On this page:
3d Orbit
7.4

3d Orbit

procedure

(orbit-scene [#:fly-speed speed    
  #:fly-mode? fly-mode    
  #:start-position start    
  #:universe universe    
  #:star star    
  #:objects-list objects]    
  more-objects ...)  any/c
  speed : positive? = 750
  fly-mode : boolean? = #t
  start : position-attribute? = (position 0 1.6 30)
  universe : (listof entity?) = (basic-universe)
  star : entity? = '()
  objects : list? = '()
  more-objects : any/c
The top-level function for the 3d-orbit language. Can be run with no parameters to get a basic, default orbit.

procedure

(basic-universe [#:universe-color bg-color    
  #:star-color star-color    
  #:star-count count    
  #:star-depth dep    
  #:star-radius rad    
  #:star-size size    
  #:star-texture texture])  (listof entity?)
  bg-color : (or/c string? symbol? object?) = 'black
  star-color : (or/c string? symbol? object?) = 'white
  count : real? = 10000
  dep : real? = 250
  rad : real? = 250
  size : real? = 1.0
  texture : any/c = ""
Basic Universe

procedure

(basic-star [#:position pos    
  #:rotation rota    
  #:scale sca    
  #:color col    
  #:texture texture    
  #:radius r    
  #:light-distance ld    
  #:opacity opac    
  #:show-orbits? orbits?    
  #:label l    
  #:label-color lc    
  #:label-position lp    
  #:label-scale ls    
  #:animations-list animations-list    
  #:planets-list p-list    
  #:on-mouse-enter mouse-enter    
  #:on-mouse-leave mouse-leave    
  #:on-mouse-click mouse-click    
  #:objects-list c-list])  entity?
  pos : object? = (position 0 0 0)
  rota : object? = (rotation 0.0 0.0 0.0)
  sca : (or/c number? object?) = (scale 1.0 1.0 1.0)
  col : (or/c string? symbol? object?) = (color 255 255 255)
  texture : any/c
   = 
(first (shuffle (list (tint-img 'brown sun-tex)
                      (tint-img 'red sun-tex)
                      (tint-img 'darkred sun-tex)
                      (tint-img 'lightred sun-tex)
                      (tint-img 'orange sun-tex)
                      (tint-img 'darkorange sun-tex)
                      (tint-img 'lightorange sun-tex)
                      (tint-img 'yellow sun-tex)
                      (tint-img 'darkyellow sun-tex)
                      (tint-img 'lightyellow sun-tex)
                      (tint-img 'salmon sun-tex)
                      (tint-img 'purple sun-tex)
                      (tint-img 'white sun-tex)
                      sun-tex)))
  r : real? = (random 8 15)
  ld : real? = (* r 35.0)
  opac : between-0-1-inclusive? = 1.0
  orbits? : boolean? = #f
  l : (or/c boolean? string?) = #f
  lc : (or/c string? symbol? object?) = 'white
  lp : object? = (position 0 r 0)
  ls : (or/c number? object?) = (scale (* 2 r) (* 2 r) 1)
  animations-list : (or/c empty? (listof object?))
   = (do-many (y-rotation))
  p-list : (or/c empty? (listof entity?)) = '()
  mouse-enter : (or/c #f (listof object?)) = #f
  mouse-leave : (or/c #f (listof object?)) = #f
  mouse-click : (or/c #f (listof object?)) = #f
  c-list : (or/c empty? (listof entity?)) = '()
Basic Star.

procedure

(basic-ring [#:tilt tilt    
  #:radius rad    
  #:thickness rt    
  #:opacity opa    
  #:color c    
  #:texture texture    
  #:shader sha])  entity?
  tilt : object? = (tilt 0 0 0)
  rad : real? = (random-float 0.25 1.5 #:factor 100)
  rt : real? = (random-float 0.2 2.0 #:factor 1000)
  opa : between-0-1-inclusive?
   = (random-float 0.25 1.0 #:factor 100)
  c : (or/c #f string? symbol? object?) = #f
  texture : any/c = #f
  sha : string? = "standard"
Basic Ring.

procedure

(basic-planet [#:position pos    
  #:rotation rota    
  #:scale sca    
  #:color col    
  #:texture texture    
  #:radius r    
  #:opacity opac    
  #:rings-list r-list    
  #:moons-list m-list    
  #:label l    
  #:label-color lc    
  #:label-position lp    
  #:label-scale ls    
  #:show-orbits? orbits?    
  #:animations-list animations-list    
  #:on-mouse-enter mouse-enter    
  #:on-mouse-leave mouse-leave    
  #:on-mouse-click mouse-click    
  #:objects-list c-list])  entity?
  pos : object?
   = (position (random-range 25 75) 0 (random-range 25 75))
  rota : object? = (rotation 0.0 0.0 0.0)
  sca : (or/c number? object?) = (scale 1.0 1.0 1.0)
  col : (or/c string? symbol? object?) = (color 255 255 255)
  texture : any/c = 
(first (shuffle (list mercury-tex
                      venus-tex
                      earth-tex
                      earthnight-tex
                      mars-tex
                      jupiter-tex
                      saturn-tex
                      uranus-tex
                      neptune-tex)))
  r : real? = (random 1 5)
  opac : between-0-1-inclusive? = 1.0
  r-list : (or/c empty? (listof entity?)) = '()
  m-list : (or/c empty? (listof entity?)) = '()
  l : (or/c boolean? string?) = #f
  lc : (or/c string? symbol? object?) = 'white
  lp : object? = (position 0 r 0)
  ls : (or/c number? object?) = (scale (* 2 r) (* 2 r) 1)
  orbits? : boolean? = #f
  animations-list : (or/c empty? (listof object?))
   = (do-many (x-rotation))
  mouse-enter : (or/c #f (listof object?)) = #f
  mouse-leave : (or/c #f (listof object?)) = #f
  mouse-click : (or/c #f (listof object?)) = #f
  c-list : (or/c empty? (listof entity?)) = '()
Basic Planet.

procedure

(basic-moon [#:position pos    
  #:rotation rota    
  #:scale sca    
  #:color col    
  #:texture texture    
  #:radius r    
  #:opacity opac    
  #:label l    
  #:label-color lc    
  #:label-position lp    
  #:label-scale ls    
  #:animations-list animations-list    
  #:on-mouse-enter mouse-enter    
  #:on-mouse-leave mouse-leave    
  #:on-mouse-click mouse-click    
  #:objects-list c-list])  entity?
  pos : object?
   = (position 0 (random-range 7 12) (random-range 7 12))
  rota : object? = (rotation 0.0 0.0 0.0)
  sca : (or/c number? object?) = (scale 1.0 1.0 1.0)
  col : (or/c string? symbol? object?) = (color 255 255 255)
  texture : any/c = moon-tex
  r : real? = (random-float 0.25 0.75 #:factor 100)
  opac : between-0-1-inclusive? = 1.0
  l : (or/c boolean? string?) = #f
  lc : (or/c string? symbol? object?) = 'white
  lp : object? = (position 0 r 0)
  ls : (or/c number? object?) = (scale (* 2 r) (* 2 r) 1)
  animations-list : (or/c empty? (listof object?))
   = (do-many (y-rotation))
  mouse-enter : (or/c #f (listof object?)) = #f
  mouse-leave : (or/c #f (listof object?)) = #f
  mouse-click : (or/c #f (listof object?)) = #f
  c-list : (or/c empty? (listof entity?)) = '()
Basic Moon.

procedure

(basic-asteroid [#:position pos    
  #:rotation rota    
  #:scale sca    
  #:color col    
  #:texture texture    
  #:radius r    
  #:opacity opac    
  #:label l    
  #:label-color lc    
  #:label-position lp    
  #:label-scale ls    
  #:animations-list animations-list    
  #:on-mouse-enter mouse-enter    
  #:on-mouse-leave mouse-leave    
  #:on-mouse-click mouse-click    
  #:objects-list c-list])  entity?
  pos : object?
   = (position 0 (random-range 7 12) (random-range 7 12))
  rota : object? = (rotation 0.0 0.0 0.0)
  sca : (or/c number? object?) = (scale 1.0 1.0 1.0)
  col : (or/c string? symbol? object?) = (color 255 255 255)
  texture : any/c
   = 
(first (shuffle (list (tint-img 'brown asteroid-tex)
                      (tint-img 'black asteroid-tex)
                      (tint-img 'grey asteroid-tex)
                      (tint-img 'white asteroid-tex)
                      asteroid-tex)))
  r : real? = (random-float 0.1 0.3 #:factor 100)
  opac : between-0-1-inclusive? = 1.0
  l : (or/c boolean? string?) = #f
  lc : (or/c string? symbol? object?) = 'white
  lp : object? = (position 0 r 0)
  ls : (or/c number? object?) = (scale (* 2 r) (* 2 r) 1)
  animations-list : (or/c empty? (listof object?))
   = (do-many (y-rotation))
  mouse-enter : (or/c #f (listof object?)) = #f
  mouse-leave : (or/c #f (listof object?)) = #f
  mouse-click : (or/c #f (listof object?)) = #f
  c-list : (or/c empty? (listof entity?)) = '()
Basic Asteroid.

procedure

(star-sun [#:position pos    
  #:rotation rota    
  #:scale sca    
  #:color col    
  #:texture texture    
  #:radius r    
  #:light-distance ld    
  #:opacity opac    
  #:show-orbits? orbits?    
  #:label l    
  #:label-color lc    
  #:label-position lp    
  #:label-scale ls    
  #:animations-list animations-list    
  #:planets-list p-list    
  #:on-mouse-enter mouse-enter    
  #:on-mouse-leave mouse-leave    
  #:on-mouse-click mouse-click    
  #:objects-list c-list])  entity?
  pos : object? = (position 0 0 -250)
  rota : object? = (rotation 0.0 0.0 0.0)
  sca : (or/c number? object?) = (scale 1.0 1.0 1.0)
  col : (or/c string? symbol? object?) = (color 255 255 255)
  texture : any/c = sun-tex
  r : real? = 109
  ld : real? = (* r 35.0)
  opac : between-0-1-inclusive? = 1.0
  orbits? : boolean? = #f
  l : (or/c boolean? string?) = "Sun"
  lc : (or/c string? symbol? object?) = 'white
  lp : object? = (position 0 r 0)
  ls : (or/c number? object?) = (scale (* 2 r) (* 2 r) 1)
  animations-list : (or/c empty? (listof object?))
   = (do-many (y-rotation))
  p-list : (or/c empty? (listof entity?)) = '()
  mouse-enter : (or/c #f (listof object?)) = #f
  mouse-leave : (or/c #f (listof object?)) = #f
  mouse-click : (or/c #f (listof object?)) = #f
  c-list : (or/c empty? (listof entity?)) = '()
Star Sun.

procedure

(planet-mercury [#:position pos    
  #:rotation rota    
  #:scale sca    
  #:color col    
  #:texture texture    
  #:radius r    
  #:opacity opac    
  #:rings-list r-list    
  #:moons-list m-list    
  #:label l    
  #:label-color lc    
  #:label-position lp    
  #:label-scale ls    
  #:show-orbits? orbits?    
  #:animations-list animations-list    
  #:on-mouse-enter mouse-enter    
  #:on-mouse-leave mouse-leave    
  #:on-mouse-click mouse-click    
  #:objects-list c-list])  entity?
  pos : object? = (position 0 0 2)
  rota : object? = (rotation 0.0 0.0 0.0)
  sca : (or/c number? object?) = (scale 1.0 1.0 1.0)
  col : (or/c string? symbol? object?) = (color 255 255 255)
  texture : any/c = mercury-tex
  r : real? = 0.38
  opac : between-0-1-inclusive? = 1.0
  r-list : (or/c empty? (listof entity?)) = '()
  m-list : (or/c empty? (listof entity?)) = '()
  l : (or/c boolean? string?) = "Mercury"
  lc : (or/c string? symbol? object?) = 'white
  lp : object? = (position 0 r 0)
  ls : (or/c number? object?) = (scale (* 2 r) (* 2 r) 1)
  orbits? : boolean? = #f
  animations-list : (or/c empty? (listof object?))
   = (do-many (x-rotation))
  mouse-enter : (or/c #f (listof object?)) = #f
  mouse-leave : (or/c #f (listof object?)) = #f
  mouse-click : (or/c #f (listof object?)) = #f
  c-list : (or/c empty? (listof entity?)) = '()
Planet Mercury.

procedure

(planet-venus [#:position pos    
  #:rotation rota    
  #:scale sca    
  #:color col    
  #:texture texture    
  #:radius r    
  #:opacity opac    
  #:rings-list r-list    
  #:moons-list m-list    
  #:label l    
  #:label-color lc    
  #:label-position lp    
  #:label-scale ls    
  #:show-orbits? orbits?    
  #:animations-list animations-list    
  #:on-mouse-enter mouse-enter    
  #:on-mouse-leave mouse-leave    
  #:on-mouse-click mouse-click    
  #:objects-list c-list])  entity?
  pos : object? = (position 0 0 3)
  rota : object? = (rotation 0.0 0.0 0.0)
  sca : (or/c number? object?) = (scale 1.0 1.0 1.0)
  col : (or/c string? symbol? object?) = (color 255 255 255)
  texture : any/c = venus-tex
  r : real? = 0.95
  opac : between-0-1-inclusive? = 1.0
  r-list : (or/c empty? (listof entity?)) = '()
  m-list : (or/c empty? (listof entity?)) = '()
  l : (or/c boolean? string?) = "Venus"
  lc : (or/c string? symbol? object?) = 'white
  lp : object? = (position 0 r 0)
  ls : (or/c number? object?) = (scale (* 2 r) (* 2 r) 1)
  orbits? : boolean? = #f
  animations-list : (or/c empty? (listof object?))
   = (do-many (x-rotation))
  mouse-enter : (or/c #f (listof object?)) = #f
  mouse-leave : (or/c #f (listof object?)) = #f
  mouse-click : (or/c #f (listof object?)) = #f
  c-list : (or/c empty? (listof entity?)) = '()
Planet Venus.

procedure

(planet-earth [#:position pos    
  #:rotation rota    
  #:scale sca    
  #:color col    
  #:texture texture    
  #:radius r    
  #:opacity opac    
  #:rings-list r-list    
  #:moons-list m-list    
  #:label l    
  #:label-color lc    
  #:label-position lp    
  #:label-scale ls    
  #:show-orbits? orbits?    
  #:animations-list animations-list    
  #:on-mouse-enter mouse-enter    
  #:on-mouse-leave mouse-leave    
  #:on-mouse-click mouse-click    
  #:objects-list c-list])  entity?
  pos : object? = (position 0 0 3)
  rota : object? = (rotation 0.0 0.0 0.0)
  sca : (or/c number? object?) = (scale 1.0 1.0 1.0)
  col : (or/c string? symbol? object?) = (color 255 255 255)
  texture : any/c = earth-tex
  r : real? = 1
  opac : between-0-1-inclusive? = 1.0
  r-list : (or/c empty? (listof entity?)) = '()
  m-list : (or/c empty? (listof entity?)) = '()
  l : (or/c boolean? string?) = "Earth"
  lc : (or/c string? symbol? object?) = 'white
  lp : object? = (position 0 r 0)
  ls : (or/c number? object?) = (scale (* 2 r) (* 2 r) 1)
  orbits? : boolean? = #f
  animations-list : (or/c empty? (listof object?))
   = (do-many (x-rotation))
  mouse-enter : (or/c #f (listof object?)) = #f
  mouse-leave : (or/c #f (listof object?)) = #f
  mouse-click : (or/c #f (listof object?)) = #f
  c-list : (or/c empty? (listof entity?)) = '()
Planet Earth.

procedure

(moon-moon [#:position pos    
  #:rotation rota    
  #:scale sca    
  #:color col    
  #:texture texture    
  #:radius r    
  #:opacity opac    
  #:label l    
  #:label-color lc    
  #:label-position lp    
  #:label-scale ls    
  #:animations-list animations-list    
  #:on-mouse-enter mouse-enter    
  #:on-mouse-leave mouse-leave    
  #:on-mouse-click mouse-click    
  #:objects-list c-list])  entity?
  pos : object? = (position 0 0 2)
  rota : object? = (rotation 0.0 0.0 0.0)
  sca : (or/c number? object?) = (scale 1.0 1.0 1.0)
  col : (or/c string? symbol? object?) = (color 255 255 255)
  texture : any/c = moon-tex
  r : real? = 0.27
  opac : between-0-1-inclusive? = 1.0
  l : (or/c boolean? string?) = "Moon"
  lc : (or/c string? symbol? object?) = 'white
  lp : object? = (position 0 r 0)
  ls : (or/c number? object?) = (scale (* 2 r) (* 2 r) 1)
  animations-list : (or/c empty? (listof object?))
   = (do-many (y-rotation))
  mouse-enter : (or/c #f (listof object?)) = #f
  mouse-leave : (or/c #f (listof object?)) = #f
  mouse-click : (or/c #f (listof object?)) = #f
  c-list : (or/c empty? (listof entity?)) = '()
Basic Moon.

procedure

(planet-mars [#:position pos    
  #:rotation rota    
  #:scale sca    
  #:color col    
  #:texture texture    
  #:radius r    
  #:opacity opac    
  #:rings-list r-list    
  #:moons-list m-list    
  #:label l    
  #:label-color lc    
  #:label-position lp    
  #:label-scale ls    
  #:show-orbits? orbits?    
  #:animations-list animations-list    
  #:on-mouse-enter mouse-enter    
  #:on-mouse-leave mouse-leave    
  #:on-mouse-click mouse-click    
  #:objects-list c-list])  entity?
  pos : object? = (position 0 0 3)
  rota : object? = (rotation 0.0 0.0 0.0)
  sca : (or/c number? object?) = (scale 1.0 1.0 1.0)
  col : (or/c string? symbol? object?) = (color 255 255 255)
  texture : any/c = mars-tex
  r : real? = 0.53
  opac : between-0-1-inclusive? = 1.0
  r-list : (or/c empty? (listof entity?)) = '()
  m-list : (or/c empty? (listof entity?)) = '()
  l : (or/c boolean? string?) = "Mars"
  lc : (or/c string? symbol? object?) = 'white
  lp : object? = (position 0 r 0)
  ls : (or/c number? object?) = (scale (* 2 r) (* 2 r) 10)
  orbits? : boolean? = #f
  animations-list : (or/c empty? (listof object?))
   = (do-many (x-rotation))
  mouse-enter : (or/c #f (listof object?)) = #f
  mouse-leave : (or/c #f (listof object?)) = #f
  mouse-click : (or/c #f (listof object?)) = #f
  c-list : (or/c empty? (listof entity?)) = '()
Planet Mars.

procedure

(planet-jupiter [#:position pos    
  #:rotation rota    
  #:scale sca    
  #:color col    
  #:texture texture    
  #:radius r    
  #:opacity opac    
  #:rings-list r-list    
  #:moons-list m-list    
  #:label l    
  #:label-color lc    
  #:label-position lp    
  #:label-scale ls    
  #:show-orbits? orbits?    
  #:animations-list animations-list    
  #:on-mouse-enter mouse-enter    
  #:on-mouse-leave mouse-leave    
  #:on-mouse-click mouse-click    
  #:objects-list c-list])  entity?
  pos : object? = (position 0 0 23)
  rota : object? = (rotation 0.0 0.0 0.0)
  sca : (or/c number? object?) = (scale 1.0 1.0 1.0)
  col : (or/c string? symbol? object?) = (color 255 255 255)
  texture : any/c = jupiter-tex
  r : real? = 11.19
  opac : between-0-1-inclusive? = 1.0
  r-list : (or/c empty? (listof entity?)) = '()
  m-list : (or/c empty? (listof entity?)) = '()
  l : (or/c boolean? string?) = "Jupiter"
  lc : (or/c string? symbol? object?) = 'white
  lp : object? = (position 0 r 0)
  ls : (or/c number? object?) = (scale (* 2 r) (* 2 r) 1)
  orbits? : boolean? = #f
  animations-list : (or/c empty? (listof object?))
   = (do-many (x-rotation))
  mouse-enter : (or/c #f (listof object?)) = #f
  mouse-leave : (or/c #f (listof object?)) = #f
  mouse-click : (or/c #f (listof object?)) = #f
  c-list : (or/c empty? (listof entity?)) = '()
Planet Jupiter.

procedure

(planet-saturn [#:position pos    
  #:rotation rota    
  #:scale sca    
  #:color col    
  #:texture texture    
  #:radius r    
  #:opacity opac    
  #:rings-list r-list    
  #:moons-list m-list    
  #:label l    
  #:label-color lc    
  #:label-position lp    
  #:label-scale ls    
  #:show-orbits? orbits?    
  #:animations-list animations-list    
  #:on-mouse-enter mouse-enter    
  #:on-mouse-leave mouse-leave    
  #:on-mouse-click mouse-click    
  #:objects-list c-list])  entity?
  pos : object? = (position 0 0 21)
  rota : object? = (rotation 0.0 0.0 0.0)
  sca : (or/c number? object?) = (scale 1.0 1.0 1.0)
  col : (or/c string? symbol? object?) = (color 255 255 255)
  texture : any/c = saturn-tex
  r : real? = 9.4
  opac : between-0-1-inclusive? = 1.0
  r-list : (or/c empty? (listof entity?))
   = 
(list (basic-ring #:tilt (tilt 45 90 0)
                  #:opacity 0.8
                  #:texture saturnring-tex
                  #:radius (- (* r 1.55) r)
                  #:thickness (* r 0.9)))
  m-list : (or/c empty? (listof entity?)) = '()
  l : (or/c boolean? string?) = "Saturn"
  lc : (or/c string? symbol? object?) = 'white
  lp : object? = (position 0 r 0)
  ls : (or/c number? object?) = (scale (* 2 r) (* 2 r) 1)
  orbits? : boolean? = #f
  animations-list : (or/c empty? (listof object?))
   = (do-many (x-rotation))
  mouse-enter : (or/c #f (listof object?)) = #f
  mouse-leave : (or/c #f (listof object?)) = #f
  mouse-click : (or/c #f (listof object?)) = #f
  c-list : (or/c empty? (listof entity?)) = '()
Planet Saturn.

procedure

(planet-uranus [#:position pos    
  #:rotation rota    
  #:scale sca    
  #:color col    
  #:texture texture    
  #:radius r    
  #:opacity opac    
  #:rings-list r-list    
  #:moons-list m-list    
  #:label l    
  #:label-color lc    
  #:label-position lp    
  #:label-scale ls    
  #:show-orbits? orbits?    
  #:animations-list animations-list    
  #:on-mouse-enter mouse-enter    
  #:on-mouse-leave mouse-leave    
  #:on-mouse-click mouse-click    
  #:objects-list c-list])  entity?
  pos : object? = (position 0 0 9)
  rota : object? = (rotation 0.0 0.0 0.0)
  sca : (or/c number? object?) = (scale 1.0 1.0 1.0)
  col : (or/c string? symbol? object?) = (color 255 255 255)
  texture : any/c = uranus-tex
  r : real? = 4.04
  opac : between-0-1-inclusive? = 1.0
  r-list : (or/c empty? (listof entity?)) = '()
  m-list : (or/c empty? (listof entity?)) = '()
  l : (or/c boolean? string?) = "Uranus"
  lc : (or/c string? symbol? object?) = 'white
  lp : object? = (position 0 r 0)
  ls : (or/c number? object?) = (scale (* 2 r) (* 2 r) 1)
  orbits? : boolean? = #f
  animations-list : (or/c empty? (listof object?))
   = (do-many (x-rotation))
  mouse-enter : (or/c #f (listof object?)) = #f
  mouse-leave : (or/c #f (listof object?)) = #f
  mouse-click : (or/c #f (listof object?)) = #f
  c-list : (or/c empty? (listof entity?)) = '()
Planet Uranus.

procedure

(planet-neptune [#:position pos    
  #:rotation rota    
  #:scale sca    
  #:color col    
  #:texture texture    
  #:radius r    
  #:opacity opac    
  #:rings-list r-list    
  #:moons-list m-list    
  #:label l    
  #:label-color lc    
  #:label-position lp    
  #:label-scale ls    
  #:show-orbits? orbits?    
  #:animations-list animations-list    
  #:on-mouse-enter mouse-enter    
  #:on-mouse-leave mouse-leave    
  #:on-mouse-click mouse-click    
  #:objects-list c-list])  entity?
  pos : object? = (position 0 0 9)
  rota : object? = (rotation 0.0 0.0 0.0)
  sca : (or/c number? object?) = (scale 1.0 1.0 1.0)
  col : (or/c string? symbol? object?) = (color 255 255 255)
  texture : any/c = neptune-tex
  r : real? = 3.88
  opac : between-0-1-inclusive? = 1.0
  r-list : (or/c empty? (listof entity?)) = '()
  m-list : (or/c empty? (listof entity?)) = '()
  l : (or/c boolean? string?) = "Neptune"
  lc : (or/c string? symbol? object?) = 'white
  lp : object? = (position 0 r 0)
  ls : (or/c number? object?) = (scale (* 2 r) (* 2 r) 1)
  orbits? : boolean? = #f
  animations-list : (or/c empty? (listof object?))
   = (do-many (x-rotation))
  mouse-enter : (or/c #f (listof object?)) = #f
  mouse-leave : (or/c #f (listof object?)) = #f
  mouse-click : (or/c #f (listof object?)) = #f
  c-list : (or/c empty? (listof entity?)) = '()
Planet Neptune.