Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
/******************************************
 "Canadian Space" by Mustafa Kirgul
 ******************************************
 Description:
 I was planning on making the 3D more properly,
 but it is almost impossible to calculate the 
 right colours for left and right eye images,
 and to blend them, with the limitations we had
 for this project. Hopefully, I will do a better
 3D interface for the next project, which appears
 to have less limitations.
 ******************************************
 Instructions:
 - as you move the mouse, stars at the background,
 and the planet a the top right corner interact in
 Parallax Style.
 - when you click the mouse, a Canadian Astronaut
 (You can see the flag on their chest. Yay!)
 greets you from the window of the rocket for 1
 second.
 - stars and the planet are in Anaglyphic 3D. You 
 will need a Red/Cyan 3D glass to see the effect.
 I will provide the glasses in the class.
 - the rocket was never intended to be 3D. 2D objects
 in front of 3D background tend to jump out of the
 screen. That was the effect I planned for the
 rocket.
 - Hopefully, the program will serve as an
 interactive design application without special
 glasses as well.
 
 Thank you, for your time.
 **********************************************/


void setup() {
  size (400, 400);
  ellipseMode(CENTER);
  rectMode(CENTER);
  println("Please view with Anaglyphic 3D Glasses (Red/Cyan). If you do not have one, I have one pair reserved for you.I will give it to you on Thursday.");
}

void draw() {
  background(0);//Clear Screen
  frameRate(60);

  //----------------------------------312 3D stars

  // Actual Stars
  stroke(255);
  strokeWeight(2 +(sin(millis())));
  point(19 +  mouseX / 20, -23 + mouseY / 20);
  point(178 +  mouseX / 20, -25 + mouseY / 20);
  point(189 +  mouseX / 20, -10 + mouseY / 20);
  point(105 +  mouseX / 20, -16 + mouseY / 20);
  point(204 +  mouseX / 20, -21 + mouseY / 20);
  point(228 +  mouseX / 20, -2 + mouseY / 20);
  point(345 +  mouseX / 20, -13 + mouseY / 20);
  point(317 +  mouseX / 20, -8 + mouseY / 20);
  point(106 +  mouseX / 20, -3 + mouseY / 20);
  point(287 +  mouseX / 20, -9 + mouseY / 20);
  point(109 +  mouseX / 20, -18 + mouseY / 20);
  point(177 +  mouseX / 20, -23 + mouseY / 20);
  point(113 +  mouseX / 20, -16 + mouseY / 20);
  point(218 +  mouseX / 20, -24 + mouseY / 20);
  point(324 +  mouseX / 20, -9 + mouseY / 20);
  point(309 +  mouseX / 20, -6 + mouseY / 20);
  point(109 +  mouseX / 20, -13 + mouseY / 20);
  point(380 +  mouseX / 20, -21 + mouseY / 20);
  point(174 +  mouseX / 20, -2 + mouseY / 20);
  point(392 +  mouseX / 20, -6 + mouseY / 20);
  point(118 +  mouseX / 20, -6 + mouseY / 20);
  point(132 +  mouseX / 20, -22 + mouseY / 20);
  point(312 +  mouseX / 20, -24 + mouseY / 20);
  point(280 +  mouseX / 20, -0 + mouseY / 20);
  point(18 +  mouseX / 20, -14 + mouseY / 20);
  point(247 +  mouseX / 20, -15 + mouseY / 20);
  point(352 +  mouseX / 20, -16 + mouseY / 20);
  point(266 +  mouseX / 20, -4 + mouseY / 20);
  point(387 +  mouseX / 20, -23 + mouseY / 20);
  point(137 +  mouseX / 20, -3 + mouseY / 20);
  point(11 +  mouseX / 20, -23 + mouseY / 20);
  point(342 +  mouseX / 20, -2 + mouseY / 20);
  point(- 3 + mouseX / 20, 11 + mouseY / 20);
  point(- 6 + mouseX / 20, 164 + mouseY / 20);
  point(- 22 + mouseX / 20, 385 + mouseY / 20);
  point(- 17 + mouseX / 20, 293 + mouseY / 20);
  point(- 17 + mouseX / 20, 39 + mouseY / 20);
  point(- 11 + mouseX / 20, 358 + mouseY / 20);
  point(- 20 + mouseX / 20, 320 + mouseY / 20);
  point(- 6 + mouseX / 20, 58 + mouseY / 20);
  point(- 15 + mouseX / 20, 14 + mouseY / 20);
  point(- 13 + mouseX / 20, 96 + mouseY / 20);
  point(- 0 + mouseX / 20, 203 + mouseY / 20);
  point(- 2 + mouseX / 20, 103 + mouseY / 20);
  point(- 4 + mouseX / 20, 367 + mouseY / 20);
  point(- 18 + mouseX / 20, 395 + mouseY / 20);
  point(- 6 + mouseX / 20, 190 + mouseY / 20);
  point(- 0 + mouseX / 20, 89 + mouseY / 20);
  point(- 2 + mouseX / 20, 248 + mouseY / 20);
  point(- 13 + mouseX / 20, 215 + mouseY / 20);
  point(- 16 + mouseX / 20, 103 + mouseY / 20);
  point(- 20 + mouseX / 20, 206 + mouseY / 20);
  point(- 20 + mouseX / 20, 272 + mouseY / 20);
  point(- 2 + mouseX / 20, 322 + mouseY / 20);
  point(- 18 + mouseX / 20, 15 + mouseY / 20);
  point(- 9 + mouseX / 20, 101 + mouseY / 20);
  point(- 10 + mouseX / 20, 69 + mouseY / 20);
  point(- 13 + mouseX / 20, 158 + mouseY / 20);
  point(- 23 + mouseX / 20, 310 + mouseY / 20);
  point(- 24 + mouseX / 20, 260 + mouseY / 20);
  point(- 0 + mouseX / 20, 77 + mouseY / 20);
  point(- 25 + mouseX / 20, 221 + mouseY / 20);
  point(- 25 + mouseX / 20, 332 + mouseY / 20);
  point(- 13 + mouseX / 20, 330 + mouseY / 20);
  point(0 + mouseX/ 20, 83 + mouseY /20);
  point(4 + mouseX/ 20, 92 + mouseY /20);
  point(4 + mouseX/ 20, 280 + mouseY /20);
  point(4 + mouseX/ 20, 361 + mouseY /20);
  point(9 + mouseX/ 20, 195 + mouseY /20);
  point(10 + mouseX/ 20, 127 + mouseY /20);
  point(11 + mouseX/ 20, 132 + mouseY /20);
  point(16 + mouseX/ 20, 169 + mouseY /20);
  point(19 + mouseX/ 20, 225 + mouseY /20);
  point(26 + mouseX/ 20, 217 + mouseY /20);
  point(26 + mouseX/ 20, 290 + mouseY /20);
  point(27 + mouseX/ 20, 391 + mouseY /20);
  point(28 + mouseX/ 20, 171 + mouseY /20);
  point(29 + mouseX/ 20, 141 + mouseY /20);
  point(31 + mouseX/ 20, 57 + mouseY /20);
  point(31 + mouseX/ 20, 121 + mouseY /20);
  point(35 + mouseX/ 20, 376 + mouseY /20);
  point(36 + mouseX/ 20, 10 + mouseY /20);
  point(36 + mouseX/ 20, 241 + mouseY /20);
  point(38 + mouseX/ 20, 23 + mouseY /20);
  point(38 + mouseX/ 20, 92 + mouseY /20);
  point(38 + mouseX/ 20, 134 + mouseY /20);
  point(43 + mouseX/ 20, 119 + mouseY /20);
  point(43 + mouseX/ 20, 159 + mouseY /20);
  point(43 + mouseX/ 20, 375 + mouseY /20);
  point(46 + mouseX/ 20, 278 + mouseY /20);
  point(47 + mouseX/ 20, 93 + mouseY /20);
  point(49 + mouseX/ 20, 42 + mouseY /20);
  point(49 + mouseX/ 20, 90 + mouseY /20);
  point(49 + mouseX/ 20, 104 + mouseY /20);
  point(50 + mouseX/ 20, 167 + mouseY /20);
  point(51 + mouseX/ 20, 383 + mouseY /20);
  point(52 + mouseX/ 20, 29 + mouseY /20);
  point(53 + mouseX/ 20, 81 + mouseY /20);
  point(53 + mouseX/ 20, 239 + mouseY /20);
  point(54 + mouseX/ 20, 303 + mouseY /20);
  point(55 + mouseX/ 20, 141 + mouseY /20);
  point(58 + mouseX/ 20, 107 + mouseY /20);
  point(59 + mouseX/ 20, 196 + mouseY /20);
  point(59 + mouseX/ 20, 287 + mouseY /20);
  point(60 + mouseX/ 20, 286 + mouseY /20);
  point(64 + mouseX/ 20, 391 + mouseY /20);
  point(67 + mouseX/ 20, 178 + mouseY /20);
  point(68 + mouseX/ 20, 278 + mouseY /20);
  point(70 + mouseX/ 20, 119 + mouseY /20);
  point(71 + mouseX/ 20, 92 + mouseY /20);
  point(72 + mouseX/ 20, 216 + mouseY /20);
  point(72 + mouseX/ 20, 349 + mouseY /20);
  point(73 + mouseX/ 20, 355 + mouseY /20);
  point(75 + mouseX/ 20, 62 + mouseY /20);
  point(76 + mouseX/ 20, 263 + mouseY /20);
  point(77 + mouseX/ 20, 118 + mouseY /20);
  point(77 + mouseX/ 20, 208 + mouseY /20);
  point(77 + mouseX/ 20, 253 + mouseY /20);
  point(79 + mouseX/ 20, 344 + mouseY /20);
  point(80 + mouseX/ 20, 40 + mouseY /20);
  point(81 + mouseX/ 20, 220 + mouseY /20);
  point(81 + mouseX/ 20, 272 + mouseY /20);
  point(84 + mouseX/ 20, 161 + mouseY /20);
  point(85 + mouseX/ 20, 104 + mouseY /20);
  point(85 + mouseX/ 20, 111 + mouseY /20);
  point(89 + mouseX/ 20, 306 + mouseY /20);
  point(90 + mouseX/ 20, 35 + mouseY /20);
  point(93 + mouseX/ 20, 177 + mouseY /20);
  point(94 + mouseX/ 20, 43 + mouseY /20);
  point(96 + mouseX/ 20, 93 + mouseY /20);
  point(96 + mouseX/ 20, 327 + mouseY /20);
  point(96 + mouseX/ 20, 349 + mouseY /20);
  point(97 + mouseX/ 20, 51 + mouseY /20);
  point(98 + mouseX/ 20, 128 + mouseY /20);
  point(98 + mouseX/ 20, 372 + mouseY /20);
  point(101 + mouseX/ 20, 9 + mouseY /20);
  point(101 + mouseX/ 20, 75 + mouseY /20);
  point(101 + mouseX/ 20, 286 + mouseY /20);
  point(103 + mouseX/ 20, 353 + mouseY /20);
  point(106 + mouseX/ 20, 53 + mouseY /20);
  point(106 + mouseX/ 20, 279 + mouseY /20);
  point(106 + mouseX/ 20, 315 + mouseY /20);
  point(110 + mouseX/ 20, 104 + mouseY /20);
  point(111 + mouseX/ 20, 332 + mouseY /20);
  point(113 + mouseX/ 20, 252 + mouseY /20);
  point(113 + mouseX/ 20, 257 + mouseY /20);
  point(115 + mouseX/ 20, 306 + mouseY /20);
  point(116 + mouseX/ 20, 98 + mouseY /20);
  point(116 + mouseX/ 20, 127 + mouseY /20);
  point(118 + mouseX/ 20, 314 + mouseY /20);
  point(121 + mouseX/ 20, 91 + mouseY /20);
  point(121 + mouseX/ 20, 303 + mouseY /20);
  point(122 + mouseX/ 20, 87 + mouseY /20);
  point(126 + mouseX/ 20, 347 + mouseY /20);
  point(126 + mouseX/ 20, 363 + mouseY /20);
  point(129 + mouseX/ 20, 46 + mouseY /20);
  point(131 + mouseX/ 20, 265 + mouseY /20);
  point(134 + mouseX/ 20, 18 + mouseY /20);
  point(137 + mouseX/ 20, 395 + mouseY /20);
  point(147 + mouseX/ 20, 151 + mouseY /20);
  point(152 + mouseX/ 20, 113 + mouseY /20);
  point(153 + mouseX/ 20, 15 + mouseY /20);
  point(155 + mouseX/ 20, 192 + mouseY /20);
  point(162 + mouseX/ 20, 9 + mouseY /20);
  point(164 + mouseX/ 20, 244 + mouseY /20);
  point(164 + mouseX/ 20, 330 + mouseY /20);
  point(166 + mouseX/ 20, 8 + mouseY /20);
  point(166 + mouseX/ 20, 40 + mouseY /20);
  point(166 + mouseX/ 20, 362 + mouseY /20);
  point(167 + mouseX/ 20, 167 + mouseY /20);
  point(172 + mouseX/ 20, 209 + mouseY /20);
  point(173 + mouseX/ 20, 300 + mouseY /20);
  point(175 + mouseX/ 20, 16 + mouseY /20);
  point(175 + mouseX/ 20, 120 + mouseY /20);
  point(177 + mouseX/ 20, 300 + mouseY /20);
  point(179 + mouseX/ 20, 64 + mouseY /20);
  point(183 + mouseX/ 20, 363 + mouseY /20);
  point(186 + mouseX/ 20, 310 + mouseY /20);
  point(187 + mouseX/ 20, 399 + mouseY /20);
  point(193 + mouseX/ 20, 123 + mouseY /20);
  point(195 + mouseX/ 20, 167 + mouseY /20);
  point(196 + mouseX/ 20, 71 + mouseY /20);
  point(196 + mouseX/ 20, 121 + mouseY /20);
  point(196 + mouseX/ 20, 134 + mouseY /20);
  point(196 + mouseX/ 20, 283 + mouseY /20);
  point(198 + mouseX/ 20, 12 + mouseY /20);
  point(199 + mouseX/ 20, 182 + mouseY /20);
  point(199 + mouseX/ 20, 214 + mouseY /20);
  point(199 + mouseX/ 20, 269 + mouseY /20);
  point(199 + mouseX/ 20, 400 + mouseY /20);
  point(200 + mouseX/ 20, 288 + mouseY /20);
  point(202 + mouseX/ 20, 173 + mouseY /20);
  point(208 + mouseX/ 20, 349 + mouseY /20);
  point(211 + mouseX/ 20, 30 + mouseY /20);
  point(212 + mouseX/ 20, 309 + mouseY /20);
  point(212 + mouseX/ 20, 365 + mouseY /20);
  point(216 + mouseX/ 20, 222 + mouseY /20);
  point(218 + mouseX/ 20, 262 + mouseY /20);
  point(219 + mouseX/ 20, 339 + mouseY /20);
  point(219 + mouseX/ 20, 352 + mouseY /20);
  point(222 + mouseX/ 20, 335 + mouseY /20);
  point(224 + mouseX/ 20, 253 + mouseY /20);
  point(225 + mouseX/ 20, 87 + mouseY /20);
  point(228 + mouseX/ 20, 163 + mouseY /20);
  point(228 + mouseX/ 20, 387 + mouseY /20);
  point(229 + mouseX/ 20, 239 + mouseY /20);
  point(231 + mouseX/ 20, 217 + mouseY /20);
  point(231 + mouseX/ 20, 264 + mouseY /20);
  point(232 + mouseX/ 20, 327 + mouseY /20);
  point(234 + mouseX/ 20, 180 + mouseY /20);
  point(241 + mouseX/ 20, 305 + mouseY /20);
  point(242 + mouseX/ 20, 208 + mouseY /20);
  point(243 + mouseX/ 20, 379 + mouseY /20);
  point(244 + mouseX/ 20, 350 + mouseY /20);
  point(245 + mouseX/ 20, 360 + mouseY /20);
  point(245 + mouseX/ 20, 382 + mouseY /20);
  point(248 + mouseX/ 20, 284 + mouseY /20);
  point(248 + mouseX/ 20, 390 + mouseY /20);
  point(249 + mouseX/ 20, 30 + mouseY /20);
  point(253 + mouseX/ 20, 153 + mouseY /20);
  point(255 + mouseX/ 20, 15 + mouseY /20);
  point(257 + mouseX/ 20, 7 + mouseY /20);
  point(257 + mouseX/ 20, 176 + mouseY /20);
  point(261 + mouseX/ 20, 266 + mouseY /20);
  point(263 + mouseX/ 20, 34 + mouseY /20);
  point(266 + mouseX/ 20, 133 + mouseY /20);
  point(267 + mouseX/ 20, 35 + mouseY /20);
  point(268 + mouseX/ 20, 230 + mouseY /20);
  point(269 + mouseX/ 20, 21 + mouseY /20);
  point(269 + mouseX/ 20, 140 + mouseY /20);
  point(269 + mouseX/ 20, 329 + mouseY /20);
  point(274 + mouseX/ 20, 4 + mouseY /20);
  point(275 + mouseX/ 20, 378 + mouseY /20);
  point(276 + mouseX/ 20, 355 + mouseY /20);
  point(277 + mouseX/ 20, 12 + mouseY /20);
  point(278 + mouseX/ 20, 99 + mouseY /20);
  point(278 + mouseX/ 20, 310 + mouseY /20);
  point(283 + mouseX/ 20, 146 + mouseY /20);
  point(283 + mouseX/ 20, 393 + mouseY /20);
  point(284 + mouseX/ 20, 99 + mouseY /20);
  point(284 + mouseX/ 20, 397 + mouseY /20);
  point(286 + mouseX/ 20, 235 + mouseY /20);
  point(287 + mouseX/ 20, 251 + mouseY /20);
  point(288 + mouseX/ 20, 346 + mouseY /20);
  point(289 + mouseX/ 20, 112 + mouseY /20);
  point(290 + mouseX/ 20, 314 + mouseY /20);
  point(291 + mouseX/ 20, 117 + mouseY /20);
  point(292 + mouseX/ 20, 169 + mouseY /20);
  point(293 + mouseX/ 20, 15 + mouseY /20);
  point(293 + mouseX/ 20, 117 + mouseY /20);
  point(294 + mouseX/ 20, 212 + mouseY /20);
  point(296 + mouseX/ 20, 282 + mouseY /20);
  point(299 + mouseX/ 20, 375 + mouseY /20);
  point(300 + mouseX/ 20, 82 + mouseY /20);
  point(303 + mouseX/ 20, 73 + mouseY /20);
  point(304 + mouseX/ 20, 345 + mouseY /20);
  point(305 + mouseX/ 20, 164 + mouseY /20);
  point(306 + mouseX/ 20, 4 + mouseY /20);
  point(309 + mouseX/ 20, 181 + mouseY /20);
  point(311 + mouseX/ 20, 171 + mouseY /20);
  point(311 + mouseX/ 20, 283 + mouseY /20);
  point(312 + mouseX/ 20, 93 + mouseY /20);
  point(312 + mouseX/ 20, 106 + mouseY /20);
  point(314 + mouseX/ 20, 34 + mouseY /20);
  point(315 + mouseX/ 20, 375 + mouseY /20);
  point(317 + mouseX/ 20, 306 + mouseY /20);
  point(323 + mouseX/ 20, 103 + mouseY /20);
  point(323 + mouseX/ 20, 120 + mouseY /20);
  point(323 + mouseX/ 20, 201 + mouseY /20);
  point(323 + mouseX/ 20, 338 + mouseY /20);
  point(326 + mouseX/ 20, 320 + mouseY /20);
  point(328 + mouseX/ 20, 93 + mouseY /20);
  point(328 + mouseX/ 20, 212 + mouseY /20);
  point(331 + mouseX/ 20, 375 + mouseY /20);
  point(332 + mouseX/ 20, 227 + mouseY /20);
  point(333 + mouseX/ 20, 143 + mouseY /20);
  point(333 + mouseX/ 20, 144 + mouseY /20);
  point(334 + mouseX/ 20, 125 + mouseY /20);
  point(335 + mouseX/ 20, 331 + mouseY /20);
  point(340 + mouseX/ 20, 343 + mouseY /20);
  point(341 + mouseX/ 20, 6 + mouseY /20);
  point(342 + mouseX/ 20, 41 + mouseY /20);
  point(342 + mouseX/ 20, 199 + mouseY /20);
  point(343 + mouseX/ 20, 260 + mouseY /20);
  point(344 + mouseX/ 20, 255 + mouseY /20);
  point(345 + mouseX/ 20, 86 + mouseY /20);
  point(349 + mouseX/ 20, 94 + mouseY /20);
  point(350 + mouseX/ 20, 310 + mouseY /20);
  point(355 + mouseX/ 20, 336 + mouseY /20);
  point(356 + mouseX/ 20, 51 + mouseY /20);
  point(358 + mouseX/ 20, 284 + mouseY /20);
  point(360 + mouseX/ 20, 366 + mouseY /20);
  point(364 + mouseX/ 20, 191 + mouseY /20);
  point(365 + mouseX/ 20, 159 + mouseY /20);
  point(370 + mouseX/ 20, 356 + mouseY /20);
  point(371 + mouseX/ 20, 214 + mouseY /20);
  point(371 + mouseX/ 20, 340 + mouseY /20);
  point(373 + mouseX/ 20, 158 + mouseY /20);
  point(373 + mouseX/ 20, 327 + mouseY /20);
  point(376 + mouseX/ 20, 333 + mouseY /20);
  point(376 + mouseX/ 20, 368 + mouseY /20);
  point(378 + mouseX/ 20, 33 + mouseY /20);
  point(388 + mouseX/ 20, 29 + mouseY /20);
  point(388 + mouseX/ 20, 60 + mouseY /20);
  point(388 + mouseX/ 20, 296 + mouseY /20);
  point(391 + mouseX/ 20, 333 + mouseY /20);
  point(395 + mouseX/ 20, 325 + mouseY /20);
  point(396 + mouseX/ 20, 232 + mouseY /20);
  point(397 + mouseX/ 20, 131 + mouseY /20);
  point(399 + mouseX/ 20, 41 + mouseY /20);
  point(399 + mouseX/ 20, 290 + mouseY /20);
  point(400 + mouseX/ 20, 195 + mouseY /20);

  //3D LEft Eye
  stroke(255, 0, 0, 200);
  strokeWeight(2 +(sin(millis())));
  point(19 +  mouseX / 20 -2, -23 + mouseY / 20);
  point(178 +  mouseX / 20 -2, -25 + mouseY / 20);
  point(189 +  mouseX / 20 -2, -10 + mouseY / 20);
  point(105 +  mouseX / 20 -2, -16 + mouseY / 20);
  point(204 +  mouseX / 20 -2, -21 + mouseY / 20);
  point(228 +  mouseX / 20 -2, -2 + mouseY / 20);
  point(345 +  mouseX / 20 -2, -13 + mouseY / 20);
  point(317 +  mouseX / 20 -2, -8 + mouseY / 20);
  point(106 +  mouseX / 20 -2, -3 + mouseY / 20);
  point(287 +  mouseX / 20 -2, -9 + mouseY / 20);
  point(109 +  mouseX / 20 -2, -18 + mouseY / 20);
  point(177 +  mouseX / 20 -2, -23 + mouseY / 20);
  point(113 +  mouseX / 20 -2, -16 + mouseY / 20);
  point(218 +  mouseX / 20 -2, -24 + mouseY / 20);
  point(324 +  mouseX / 20 -2, -9 + mouseY / 20);
  point(309 +  mouseX / 20 -2, -6 + mouseY / 20);
  point(109 +  mouseX / 20 -2, -13 + mouseY / 20);
  point(380 +  mouseX / 20 -2, -21 + mouseY / 20);
  point(174 +  mouseX / 20 -2, -2 + mouseY / 20);
  point(392 +  mouseX / 20 -2, -6 + mouseY / 20);
  point(118 +  mouseX / 20 -2, -6 + mouseY / 20);
  point(132 +  mouseX / 20 -2, -22 + mouseY / 20);
  point(312 +  mouseX / 20 -2, -24 + mouseY / 20);
  point(280 +  mouseX / 20 -2, -0 + mouseY / 20);
  point(18 +  mouseX / 20 -2, -14 + mouseY / 20);
  point(247 +  mouseX / 20 -2, -15 + mouseY / 20);
  point(352 +  mouseX / 20 -2, -16 + mouseY / 20);
  point(266 +  mouseX / 20 -2, -4 + mouseY / 20);
  point(387 +  mouseX / 20 -2, -23 + mouseY / 20);
  point(137 +  mouseX / 20 -2, -3 + mouseY / 20);
  point(11 +  mouseX / 20 -2, -23 + mouseY / 20);
  point(342 +  mouseX / 20 -2, -2 + mouseY / 20);
  point(- 3 +  mouseX / 20 -2, 11 + mouseY / 20);
  point(- 6 +  mouseX / 20 -2, 164 + mouseY / 20);
  point(- 22 +  mouseX / 20 -2, 385 + mouseY / 20);
  point(- 17 +  mouseX / 20 -2, 293 + mouseY / 20);
  point(- 17 +  mouseX / 20 -2, 39 + mouseY / 20);
  point(- 11 +  mouseX / 20 -2, 358 + mouseY / 20);
  point(- 20 +  mouseX / 20 -2, 320 + mouseY / 20);
  point(- 6 +  mouseX / 20 -2, 58 + mouseY / 20);
  point(- 15 +  mouseX / 20 -2, 14 + mouseY / 20);
  point(- 13 +  mouseX / 20 -2, 96 + mouseY / 20);
  point(- 0 +  mouseX / 20 -2, 203 + mouseY / 20);
  point(- 2 +  mouseX / 20 -2, 103 + mouseY / 20);
  point(- 4 +  mouseX / 20 -2, 367 + mouseY / 20);
  point(- 18 +  mouseX / 20 -2, 395 + mouseY / 20);
  point(- 6 +  mouseX / 20 -2, 190 + mouseY / 20);
  point(- 0 +  mouseX / 20 -2, 89 + mouseY / 20);
  point(- 2 +  mouseX / 20 -2, 248 + mouseY / 20);
  point(- 13 +  mouseX / 20 -2, 215 + mouseY / 20);
  point(- 16 +  mouseX / 20 -2, 103 + mouseY / 20);
  point(- 20 +  mouseX / 20 -2, 206 + mouseY / 20);
  point(- 20 +  mouseX / 20 -2, 272 + mouseY / 20);
  point(- 2 +  mouseX / 20 -2, 322 + mouseY / 20);
  point(- 18 +  mouseX / 20 -2, 15 + mouseY / 20);
  point(- 9 +  mouseX / 20 -2, 101 + mouseY / 20);
  point(- 10 +  mouseX / 20 -2, 69 + mouseY / 20);
  point(- 13 +  mouseX / 20 -2, 158 + mouseY / 20);
  point(- 23 +  mouseX / 20 -2, 310 + mouseY / 20);
  point(- 24 +  mouseX / 20 -2, 260 + mouseY / 20);
  point(- 0 +  mouseX / 20 -2, 77 + mouseY / 20);
  point(- 25 +  mouseX / 20 -2, 221 + mouseY / 20);
  point(- 25 +  mouseX / 20 -2, 332 + mouseY / 20);
  point(- 13 +  mouseX / 20 -2, 330 + mouseY / 20);
  point(0 +  mouseX / 20 -2, 83 + mouseY /20);
  point(4 +  mouseX / 20 -2, 92 + mouseY /20);
  point(4 +  mouseX / 20 -2, 280 + mouseY /20);
  point(4 +  mouseX / 20 -2, 361 + mouseY /20);
  point(9 +  mouseX / 20 -2, 195 + mouseY /20);
  point(10 +  mouseX / 20 -2, 127 + mouseY /20);
  point(11 +  mouseX / 20 -2, 132 + mouseY /20);
  point(16 +  mouseX / 20 -2, 169 + mouseY /20);
  point(19 +  mouseX / 20 -2, 225 + mouseY /20);
  point(26 +  mouseX / 20 -2, 217 + mouseY /20);
  point(26 +  mouseX / 20 -2, 290 + mouseY /20);
  point(27 +  mouseX / 20 -2, 391 + mouseY /20);
  point(28 +  mouseX / 20 -2, 171 + mouseY /20);
  point(29 +  mouseX / 20 -2, 141 + mouseY /20);
  point(31 +  mouseX / 20 -2, 57 + mouseY /20);
  point(31 +  mouseX / 20 -2, 121 + mouseY /20);
  point(35 +  mouseX / 20 -2, 376 + mouseY /20);
  point(36 +  mouseX / 20 -2, 10 + mouseY /20);
  point(36 +  mouseX / 20 -2, 241 + mouseY /20);
  point(38 +  mouseX / 20 -2, 23 + mouseY /20);
  point(38 +  mouseX / 20 -2, 92 + mouseY /20);
  point(38 +  mouseX / 20 -2, 134 + mouseY /20);
  point(43 +  mouseX / 20 -2, 119 + mouseY /20);
  point(43 +  mouseX / 20 -2, 159 + mouseY /20);
  point(43 +  mouseX / 20 -2, 375 + mouseY /20);
  point(46 +  mouseX / 20 -2, 278 + mouseY /20);
  point(47 +  mouseX / 20 -2, 93 + mouseY /20);
  point(49 +  mouseX / 20 -2, 42 + mouseY /20);
  point(49 +  mouseX / 20 -2, 90 + mouseY /20);
  point(49 +  mouseX / 20 -2, 104 + mouseY /20);
  point(50 +  mouseX / 20 -2, 167 + mouseY /20);
  point(51 +  mouseX / 20 -2, 383 + mouseY /20);
  point(52 +  mouseX / 20 -2, 29 + mouseY /20);
  point(53 +  mouseX / 20 -2, 81 + mouseY /20);
  point(53 +  mouseX / 20 -2, 239 + mouseY /20);
  point(54 +  mouseX / 20 -2, 303 + mouseY /20);
  point(55 +  mouseX / 20 -2, 141 + mouseY /20);
  point(58 +  mouseX / 20 -2, 107 + mouseY /20);
  point(59 +  mouseX / 20 -2, 196 + mouseY /20);
  point(59 +  mouseX / 20 -2, 287 + mouseY /20);
  point(60 +  mouseX / 20 -2, 286 + mouseY /20);
  point(64 +  mouseX / 20 -2, 391 + mouseY /20);
  point(67 +  mouseX / 20 -2, 178 + mouseY /20);
  point(68 +  mouseX / 20 -2, 278 + mouseY /20);
  point(70 +  mouseX / 20 -2, 119 + mouseY /20);
  point(71 +  mouseX / 20 -2, 92 + mouseY /20);
  point(72 +  mouseX / 20 -2, 216 + mouseY /20);
  point(72 +  mouseX / 20 -2, 349 + mouseY /20);
  point(73 +  mouseX / 20 -2, 355 + mouseY /20);
  point(75 +  mouseX / 20 -2, 62 + mouseY /20);
  point(76 +  mouseX / 20 -2, 263 + mouseY /20);
  point(77 +  mouseX / 20 -2, 118 + mouseY /20);
  point(77 +  mouseX / 20 -2, 208 + mouseY /20);
  point(77 +  mouseX / 20 -2, 253 + mouseY /20);
  point(79 +  mouseX / 20 -2, 344 + mouseY /20);
  point(80 +  mouseX / 20 -2, 40 + mouseY /20);
  point(81 +  mouseX / 20 -2, 220 + mouseY /20);
  point(81 +  mouseX / 20 -2, 272 + mouseY /20);
  point(84 +  mouseX / 20 -2, 161 + mouseY /20);
  point(85 +  mouseX / 20 -2, 104 + mouseY /20);
  point(85 +  mouseX / 20 -2, 111 + mouseY /20);
  point(89 +  mouseX / 20 -2, 306 + mouseY /20);
  point(90 +  mouseX / 20 -2, 35 + mouseY /20);
  point(93 +  mouseX / 20 -2, 177 + mouseY /20);
  point(94 +  mouseX / 20 -2, 43 + mouseY /20);
  point(96 +  mouseX / 20 -2, 93 + mouseY /20);
  point(96 +  mouseX / 20 -2, 327 + mouseY /20);
  point(96 +  mouseX / 20 -2, 349 + mouseY /20);
  point(97 +  mouseX / 20 -2, 51 + mouseY /20);
  point(98 +  mouseX / 20 -2, 128 + mouseY /20);
  point(98 +  mouseX / 20 -2, 372 + mouseY /20);
  point(101 +  mouseX / 20 -2, 9 + mouseY /20);
  point(101 +  mouseX / 20 -2, 75 + mouseY /20);
  point(101 +  mouseX / 20 -2, 286 + mouseY /20);
  point(103 +  mouseX / 20 -2, 353 + mouseY /20);
  point(106 +  mouseX / 20 -2, 53 + mouseY /20);
  point(106 +  mouseX / 20 -2, 279 + mouseY /20);
  point(106 +  mouseX / 20 -2, 315 + mouseY /20);
  point(110 +  mouseX / 20 -2, 104 + mouseY /20);
  point(111 +  mouseX / 20 -2, 332 + mouseY /20);
  point(113 +  mouseX / 20 -2, 252 + mouseY /20);
  point(113 +  mouseX / 20 -2, 257 + mouseY /20);
  point(115 +  mouseX / 20 -2, 306 + mouseY /20);
  point(116 +  mouseX / 20 -2, 98 + mouseY /20);
  point(116 +  mouseX / 20 -2, 127 + mouseY /20);
  point(118 +  mouseX / 20 -2, 314 + mouseY /20);
  point(121 +  mouseX / 20 -2, 91 + mouseY /20);
  point(121 +  mouseX / 20 -2, 303 + mouseY /20);
  point(122 +  mouseX / 20 -2, 87 + mouseY /20);
  point(126 +  mouseX / 20 -2, 347 + mouseY /20);
  point(126 +  mouseX / 20 -2, 363 + mouseY /20);
  point(129 +  mouseX / 20 -2, 46 + mouseY /20);
  point(131 +  mouseX / 20 -2, 265 + mouseY /20);
  point(134 +  mouseX / 20 -2, 18 + mouseY /20);
  point(137 +  mouseX / 20 -2, 395 + mouseY /20);
  point(147 +  mouseX / 20 -2, 151 + mouseY /20);
  point(152 +  mouseX / 20 -2, 113 + mouseY /20);
  point(153 +  mouseX / 20 -2, 15 + mouseY /20);
  point(155 +  mouseX / 20 -2, 192 + mouseY /20);
  point(162 +  mouseX / 20 -2, 9 + mouseY /20);
  point(164 +  mouseX / 20 -2, 244 + mouseY /20);
  point(164 +  mouseX / 20 -2, 330 + mouseY /20);
  point(166 +  mouseX / 20 -2, 8 + mouseY /20);
  point(166 +  mouseX / 20 -2, 40 + mouseY /20);
  point(166 +  mouseX / 20 -2, 362 + mouseY /20);
  point(167 +  mouseX / 20 -2, 167 + mouseY /20);
  point(172 +  mouseX / 20 -2, 209 + mouseY /20);
  point(173 +  mouseX / 20 -2, 300 + mouseY /20);
  point(175 +  mouseX / 20 -2, 16 + mouseY /20);
  point(175 +  mouseX / 20 -2, 120 + mouseY /20);
  point(177 +  mouseX / 20 -2, 300 + mouseY /20);
  point(179 +  mouseX / 20 -2, 64 + mouseY /20);
  point(183 +  mouseX / 20 -2, 363 + mouseY /20);
  point(186 +  mouseX / 20 -2, 310 + mouseY /20);
  point(187 +  mouseX / 20 -2, 399 + mouseY /20);
  point(193 +  mouseX / 20 -2, 123 + mouseY /20);
  point(195 +  mouseX / 20 -2, 167 + mouseY /20);
  point(196 +  mouseX / 20 -2, 71 + mouseY /20);
  point(196 +  mouseX / 20 -2, 121 + mouseY /20);
  point(196 +  mouseX / 20 -2, 134 + mouseY /20);
  point(196 +  mouseX / 20 -2, 283 + mouseY /20);
  point(198 +  mouseX / 20 -2, 12 + mouseY /20);
  point(199 +  mouseX / 20 -2, 182 + mouseY /20);
  point(199 +  mouseX / 20 -2, 214 + mouseY /20);
  point(199 +  mouseX / 20 -2, 269 + mouseY /20);
  point(199 +  mouseX / 20 -2, 400 + mouseY /20);
  point(200 +  mouseX / 20 -2, 288 + mouseY /20);
  point(202 +  mouseX / 20 -2, 173 + mouseY /20);
  point(208 +  mouseX / 20 -2, 349 + mouseY /20);
  point(211 +  mouseX / 20 -2, 30 + mouseY /20);
  point(212 +  mouseX / 20 -2, 309 + mouseY /20);
  point(212 +  mouseX / 20 -2, 365 + mouseY /20);
  point(216 +  mouseX / 20 -2, 222 + mouseY /20);
  point(218 +  mouseX / 20 -2, 262 + mouseY /20);
  point(219 +  mouseX / 20 -2, 339 + mouseY /20);
  point(219 +  mouseX / 20 -2, 352 + mouseY /20);
  point(222 +  mouseX / 20 -2, 335 + mouseY /20);
  point(224 +  mouseX / 20 -2, 253 + mouseY /20);
  point(225 +  mouseX / 20 -2, 87 + mouseY /20);
  point(228 +  mouseX / 20 -2, 163 + mouseY /20);
  point(228 +  mouseX / 20 -2, 387 + mouseY /20);
  point(229 +  mouseX / 20 -2, 239 + mouseY /20);
  point(231 +  mouseX / 20 -2, 217 + mouseY /20);
  point(231 +  mouseX / 20 -2, 264 + mouseY /20);
  point(232 +  mouseX / 20 -2, 327 + mouseY /20);
  point(234 +  mouseX / 20 -2, 180 + mouseY /20);
  point(241 +  mouseX / 20 -2, 305 + mouseY /20);
  point(242 +  mouseX / 20 -2, 208 + mouseY /20);
  point(243 +  mouseX / 20 -2, 379 + mouseY /20);
  point(244 +  mouseX / 20 -2, 350 + mouseY /20);
  point(245 +  mouseX / 20 -2, 360 + mouseY /20);
  point(245 +  mouseX / 20 -2, 382 + mouseY /20);
  point(248 +  mouseX / 20 -2, 284 + mouseY /20);
  point(248 +  mouseX / 20 -2, 390 + mouseY /20);
  point(249 +  mouseX / 20 -2, 30 + mouseY /20);
  point(253 +  mouseX / 20 -2, 153 + mouseY /20);
  point(255 +  mouseX / 20 -2, 15 + mouseY /20);
  point(257 +  mouseX / 20 -2, 7 + mouseY /20);
  point(257 +  mouseX / 20 -2, 176 + mouseY /20);
  point(261 +  mouseX / 20 -2, 266 + mouseY /20);
  point(263 +  mouseX / 20 -2, 34 + mouseY /20);
  point(266 +  mouseX / 20 -2, 133 + mouseY /20);
  point(267 +  mouseX / 20 -2, 35 + mouseY /20);
  point(268 +  mouseX / 20 -2, 230 + mouseY /20);
  point(269 +  mouseX / 20 -2, 21 + mouseY /20);
  point(269 +  mouseX / 20 -2, 140 + mouseY /20);
  point(269 +  mouseX / 20 -2, 329 + mouseY /20);
  point(274 +  mouseX / 20 -2, 4 + mouseY /20);
  point(275 +  mouseX / 20 -2, 378 + mouseY /20);
  point(276 +  mouseX / 20 -2, 355 + mouseY /20);
  point(277 +  mouseX / 20 -2, 12 + mouseY /20);
  point(278 +  mouseX / 20 -2, 99 + mouseY /20);
  point(278 +  mouseX / 20 -2, 310 + mouseY /20);
  point(283 +  mouseX / 20 -2, 146 + mouseY /20);
  point(283 +  mouseX / 20 -2, 393 + mouseY /20);
  point(284 +  mouseX / 20 -2, 99 + mouseY /20);
  point(284 +  mouseX / 20 -2, 397 + mouseY /20);
  point(286 +  mouseX / 20 -2, 235 + mouseY /20);
  point(287 +  mouseX / 20 -2, 251 + mouseY /20);
  point(288 +  mouseX / 20 -2, 346 + mouseY /20);
  point(289 +  mouseX / 20 -2, 112 + mouseY /20);
  point(290 +  mouseX / 20 -2, 314 + mouseY /20);
  point(291 +  mouseX / 20 -2, 117 + mouseY /20);
  point(292 +  mouseX / 20 -2, 169 + mouseY /20);
  point(293 +  mouseX / 20 -2, 15 + mouseY /20);
  point(293 +  mouseX / 20 -2, 117 + mouseY /20);
  point(294 +  mouseX / 20 -2, 212 + mouseY /20);
  point(296 +  mouseX / 20 -2, 282 + mouseY /20);
  point(299 +  mouseX / 20 -2, 375 + mouseY /20);
  point(300 +  mouseX / 20 -2, 82 + mouseY /20);
  point(303 +  mouseX / 20 -2, 73 + mouseY /20);
  point(304 +  mouseX / 20 -2, 345 + mouseY /20);
  point(305 +  mouseX / 20 -2, 164 + mouseY /20);
  point(306 +  mouseX / 20 -2, 4 + mouseY /20);
  point(309 +  mouseX / 20 -2, 181 + mouseY /20);
  point(311 +  mouseX / 20 -2, 171 + mouseY /20);
  point(311 +  mouseX / 20 -2, 283 + mouseY /20);
  point(312 +  mouseX / 20 -2, 93 + mouseY /20);
  point(312 +  mouseX / 20 -2, 106 + mouseY /20);
  point(314 +  mouseX / 20 -2, 34 + mouseY /20);
  point(315 +  mouseX / 20 -2, 375 + mouseY /20);
  point(317 +  mouseX / 20 -2, 306 + mouseY /20);
  point(323 +  mouseX / 20 -2, 103 + mouseY /20);
  point(323 +  mouseX / 20 -2, 120 + mouseY /20);
  point(323 +  mouseX / 20 -2, 201 + mouseY /20);
  point(323 +  mouseX / 20 -2, 338 + mouseY /20);
  point(326 +  mouseX / 20 -2, 320 + mouseY /20);
  point(328 +  mouseX / 20 -2, 93 + mouseY /20);
  point(328 +  mouseX / 20 -2, 212 + mouseY /20);
  point(331 +  mouseX / 20 -2, 375 + mouseY /20);
  point(332 +  mouseX / 20 -2, 227 + mouseY /20);
  point(333 +  mouseX / 20 -2, 143 + mouseY /20);
  point(333 +  mouseX / 20 -2, 144 + mouseY /20);
  point(334 +  mouseX / 20 -2, 125 + mouseY /20);
  point(335 +  mouseX / 20 -2, 331 + mouseY /20);
  point(340 +  mouseX / 20 -2, 343 + mouseY /20);
  point(341 +  mouseX / 20 -2, 6 + mouseY /20);
  point(342 +  mouseX / 20 -2, 41 + mouseY /20);
  point(342 +  mouseX / 20 -2, 199 + mouseY /20);
  point(343 +  mouseX / 20 -2, 260 + mouseY /20);
  point(344 +  mouseX / 20 -2, 255 + mouseY /20);
  point(345 +  mouseX / 20 -2, 86 + mouseY /20);
  point(349 +  mouseX / 20 -2, 94 + mouseY /20);
  point(350 +  mouseX / 20 -2, 310 + mouseY /20);
  point(355 +  mouseX / 20 -2, 336 + mouseY /20);
  point(356 +  mouseX / 20 -2, 51 + mouseY /20);
  point(358 +  mouseX / 20 -2, 284 + mouseY /20);
  point(360 +  mouseX / 20 -2, 366 + mouseY /20);
  point(364 +  mouseX / 20 -2, 191 + mouseY /20);
  point(365 +  mouseX / 20 -2, 159 + mouseY /20);
  point(370 +  mouseX / 20 -2, 356 + mouseY /20);
  point(371 +  mouseX / 20 -2, 214 + mouseY /20);
  point(371 +  mouseX / 20 -2, 340 + mouseY /20);
  point(373 +  mouseX / 20 -2, 158 + mouseY /20);
  point(373 +  mouseX / 20 -2, 327 + mouseY /20);
  point(376 +  mouseX / 20 -2, 333 + mouseY /20);
  point(376 +  mouseX / 20 -2, 368 + mouseY /20);
  point(378 +  mouseX / 20 -2, 33 + mouseY /20);
  point(388 +  mouseX / 20 -2, 29 + mouseY /20);
  point(388 +  mouseX / 20 -2, 60 + mouseY /20);
  point(388 +  mouseX / 20 -2, 296 + mouseY /20);
  point(391 +  mouseX / 20 -2, 333 + mouseY /20);
  point(395 +  mouseX / 20 -2, 325 + mouseY /20);
  point(396 +  mouseX / 20 -2, 232 + mouseY /20);
  point(397 +  mouseX / 20 -2, 131 + mouseY /20);
  point(399 +  mouseX / 20 -2, 41 + mouseY /20);
  point(399 +  mouseX / 20 -2, 290 + mouseY /20);
  point(400 +  mouseX / 20 -2, 195 + mouseY /20);

  //3D Right Eye
  stroke(0, 255, 255, 200);
  strokeWeight(2 +(sin(millis())));
  point(19 + mouseX/ 20 +2, -23 + mouseY / 20);
  point(178 + mouseX/ 20 +2, -25 + mouseY / 20);
  point(189 + mouseX/ 20 +2, -10 + mouseY / 20);
  point(105 + mouseX/ 20 +2, -16 + mouseY / 20);
  point(204 + mouseX/ 20 +2, -21 + mouseY / 20);
  point(228 + mouseX/ 20 +2, -2 + mouseY / 20);
  point(345 + mouseX/ 20 +2, -13 + mouseY / 20);
  point(317 + mouseX/ 20 +2, -8 + mouseY / 20);
  point(106 + mouseX/ 20 +2, -3 + mouseY / 20);
  point(287 + mouseX/ 20 +2, -9 + mouseY / 20);
  point(109 + mouseX/ 20 +2, -18 + mouseY / 20);
  point(177 + mouseX/ 20 +2, -23 + mouseY / 20);
  point(113 + mouseX/ 20 +2, -16 + mouseY / 20);
  point(218 + mouseX/ 20 +2, -24 + mouseY / 20);
  point(324 + mouseX/ 20 +2, -9 + mouseY / 20);
  point(309 + mouseX/ 20 +2, -6 + mouseY / 20);
  point(109 + mouseX/ 20 +2, -13 + mouseY / 20);
  point(380 + mouseX/ 20 +2, -21 + mouseY / 20);
  point(174 + mouseX/ 20 +2, -2 + mouseY / 20);
  point(392 + mouseX/ 20 +2, -6 + mouseY / 20);
  point(118 + mouseX/ 20 +2, -6 + mouseY / 20);
  point(132 + mouseX/ 20 +2, -22 + mouseY / 20);
  point(312 + mouseX/ 20 +2, -24 + mouseY / 20);
  point(280 + mouseX/ 20 +2, -0 + mouseY / 20);
  point(18 + mouseX/ 20 +2, -14 + mouseY / 20);
  point(247 + mouseX/ 20 +2, -15 + mouseY / 20);
  point(352 + mouseX/ 20 +2, -16 + mouseY / 20);
  point(266 + mouseX/ 20 +2, -4 + mouseY / 20);
  point(387 + mouseX/ 20 +2, -23 + mouseY / 20);
  point(137 + mouseX/ 20 +2, -3 + mouseY / 20);
  point(11 + mouseX/ 20 +2, -23 + mouseY / 20);
  point(342 + mouseX/ 20 +2, -2 + mouseY / 20);
  point(- 3 + mouseX / 20, 11 + mouseY / 20);
  point(- 6 + mouseX / 20, 164 + mouseY / 20);
  point(- 22 + mouseX / 20, 385 + mouseY / 20);
  point(- 17 + mouseX / 20, 293 + mouseY / 20);
  point(- 17 + mouseX / 20, 39 + mouseY / 20);
  point(- 11 + mouseX / 20, 358 + mouseY / 20);
  point(- 20 + mouseX / 20, 320 + mouseY / 20);
  point(- 6 + mouseX / 20, 58 + mouseY / 20);
  point(- 15 + mouseX / 20, 14 + mouseY / 20);
  point(- 13 + mouseX / 20, 96 + mouseY / 20);
  point(- 0 + mouseX / 20, 203 + mouseY / 20);
  point(- 2 + mouseX / 20, 103 + mouseY / 20);
  point(- 4 + mouseX / 20, 367 + mouseY / 20);
  point(- 18 + mouseX / 20, 395 + mouseY / 20);
  point(- 6 + mouseX / 20, 190 + mouseY / 20);
  point(- 0 + mouseX / 20, 89 + mouseY / 20);
  point(- 2 + mouseX / 20, 248 + mouseY / 20);
  point(- 13 + mouseX / 20, 215 + mouseY / 20);
  point(- 16 + mouseX / 20, 103 + mouseY / 20);
  point(- 20 + mouseX / 20, 206 + mouseY / 20);
  point(- 20 + mouseX / 20, 272 + mouseY / 20);
  point(- 2 + mouseX / 20, 322 + mouseY / 20);
  point(- 18 + mouseX / 20, 15 + mouseY / 20);
  point(- 9 + mouseX / 20, 101 + mouseY / 20);
  point(- 10 + mouseX / 20, 69 + mouseY / 20);
  point(- 13 + mouseX / 20, 158 + mouseY / 20);
  point(- 23 + mouseX / 20, 310 + mouseY / 20);
  point(- 24 + mouseX / 20, 260 + mouseY / 20);
  point(- 0 + mouseX / 20, 77 + mouseY / 20);
  point(- 25 + mouseX / 20, 221 + mouseY / 20);
  point(- 25 + mouseX / 20, 332 + mouseY / 20);
  point(- 13 + mouseX / 20, 330 + mouseY / 20);
  point(0 + mouseX/ 20 +2, 83 + mouseY /20);
  point(4 + mouseX/ 20 +2, 92 + mouseY /20);
  point(4 + mouseX/ 20 +2, 280 + mouseY /20);
  point(4 + mouseX/ 20 +2, 361 + mouseY /20);
  point(9 + mouseX/ 20 +2, 195 + mouseY /20);
  point(10 + mouseX/ 20 +2, 127 + mouseY /20);
  point(11 + mouseX/ 20 +2, 132 + mouseY /20);
  point(16 + mouseX/ 20 +2, 169 + mouseY /20);
  point(19 + mouseX/ 20 +2, 225 + mouseY /20);
  point(26 + mouseX/ 20 +2, 217 + mouseY /20);
  point(26 + mouseX/ 20 +2, 290 + mouseY /20);
  point(27 + mouseX/ 20 +2, 391 + mouseY /20);
  point(28 + mouseX/ 20 +2, 171 + mouseY /20);
  point(29 + mouseX/ 20 +2, 141 + mouseY /20);
  point(31 + mouseX/ 20 +2, 57 + mouseY /20);
  point(31 + mouseX/ 20 +2, 121 + mouseY /20);
  point(35 + mouseX/ 20 +2, 376 + mouseY /20);
  point(36 + mouseX/ 20 +2, 10 + mouseY /20);
  point(36 + mouseX/ 20 +2, 241 + mouseY /20);
  point(38 + mouseX/ 20 +2, 23 + mouseY /20);
  point(38 + mouseX/ 20 +2, 92 + mouseY /20);
  point(38 + mouseX/ 20 +2, 134 + mouseY /20);
  point(43 + mouseX/ 20 +2, 119 + mouseY /20);
  point(43 + mouseX/ 20 +2, 159 + mouseY /20);
  point(43 + mouseX/ 20 +2, 375 + mouseY /20);
  point(46 + mouseX/ 20 +2, 278 + mouseY /20);
  point(47 + mouseX/ 20 +2, 93 + mouseY /20);
  point(49 + mouseX/ 20 +2, 42 + mouseY /20);
  point(49 + mouseX/ 20 +2, 90 + mouseY /20);
  point(49 + mouseX/ 20 +2, 104 + mouseY /20);
  point(50 + mouseX/ 20 +2, 167 + mouseY /20);
  point(51 + mouseX/ 20 +2, 383 + mouseY /20);
  point(52 + mouseX/ 20 +2, 29 + mouseY /20);
  point(53 + mouseX/ 20 +2, 81 + mouseY /20);
  point(53 + mouseX/ 20 +2, 239 + mouseY /20);
  point(54 + mouseX/ 20 +2, 303 + mouseY /20);
  point(55 + mouseX/ 20 +2, 141 + mouseY /20);
  point(58 + mouseX/ 20 +2, 107 + mouseY /20);
  point(59 + mouseX/ 20 +2, 196 + mouseY /20);
  point(59 + mouseX/ 20 +2, 287 + mouseY /20);
  point(60 + mouseX/ 20 +2, 286 + mouseY /20);
  point(64 + mouseX/ 20 +2, 391 + mouseY /20);
  point(67 + mouseX/ 20 +2, 178 + mouseY /20);
  point(68 + mouseX/ 20 +2, 278 + mouseY /20);
  point(70 + mouseX/ 20 +2, 119 + mouseY /20);
  point(71 + mouseX/ 20 +2, 92 + mouseY /20);
  point(72 + mouseX/ 20 +2, 216 + mouseY /20);
  point(72 + mouseX/ 20 +2, 349 + mouseY /20);
  point(73 + mouseX/ 20 +2, 355 + mouseY /20);
  point(75 + mouseX/ 20 +2, 62 + mouseY /20);
  point(76 + mouseX/ 20 +2, 263 + mouseY /20);
  point(77 + mouseX/ 20 +2, 118 + mouseY /20);
  point(77 + mouseX/ 20 +2, 208 + mouseY /20);
  point(77 + mouseX/ 20 +2, 253 + mouseY /20);
  point(79 + mouseX/ 20 +2, 344 + mouseY /20);
  point(80 + mouseX/ 20 +2, 40 + mouseY /20);
  point(81 + mouseX/ 20 +2, 220 + mouseY /20);
  point(81 + mouseX/ 20 +2, 272 + mouseY /20);
  point(84 + mouseX/ 20 +2, 161 + mouseY /20);
  point(85 + mouseX/ 20 +2, 104 + mouseY /20);
  point(85 + mouseX/ 20 +2, 111 + mouseY /20);
  point(89 + mouseX/ 20 +2, 306 + mouseY /20);
  point(90 + mouseX/ 20 +2, 35 + mouseY /20);
  point(93 + mouseX/ 20 +2, 177 + mouseY /20);
  point(94 + mouseX/ 20 +2, 43 + mouseY /20);
  point(96 + mouseX/ 20 +2, 93 + mouseY /20);
  point(96 + mouseX/ 20 +2, 327 + mouseY /20);
  point(96 + mouseX/ 20 +2, 349 + mouseY /20);
  point(97 + mouseX/ 20 +2, 51 + mouseY /20);
  point(98 + mouseX/ 20 +2, 128 + mouseY /20);
  point(98 + mouseX/ 20 +2, 372 + mouseY /20);
  point(101 + mouseX/ 20 +2, 9 + mouseY /20);
  point(101 + mouseX/ 20 +2, 75 + mouseY /20);
  point(101 + mouseX/ 20 +2, 286 + mouseY /20);
  point(103 + mouseX/ 20 +2, 353 + mouseY /20);
  point(106 + mouseX/ 20 +2, 53 + mouseY /20);
  point(106 + mouseX/ 20 +2, 279 + mouseY /20);
  point(106 + mouseX/ 20 +2, 315 + mouseY /20);
  point(110 + mouseX/ 20 +2, 104 + mouseY /20);
  point(111 + mouseX/ 20 +2, 332 + mouseY /20);
  point(113 + mouseX/ 20 +2, 252 + mouseY /20);
  point(113 + mouseX/ 20 +2, 257 + mouseY /20);
  point(115 + mouseX/ 20 +2, 306 + mouseY /20);
  point(116 + mouseX/ 20 +2, 98 + mouseY /20);
  point(116 + mouseX/ 20 +2, 127 + mouseY /20);
  point(118 + mouseX/ 20 +2, 314 + mouseY /20);
  point(121 + mouseX/ 20 +2, 91 + mouseY /20);
  point(121 + mouseX/ 20 +2, 303 + mouseY /20);
  point(122 + mouseX/ 20 +2, 87 + mouseY /20);
  point(126 + mouseX/ 20 +2, 347 + mouseY /20);
  point(126 + mouseX/ 20 +2, 363 + mouseY /20);
  point(129 + mouseX/ 20 +2, 46 + mouseY /20);
  point(131 + mouseX/ 20 +2, 265 + mouseY /20);
  point(134 + mouseX/ 20 +2, 18 + mouseY /20);
  point(137 + mouseX/ 20 +2, 395 + mouseY /20);
  point(147 + mouseX/ 20 +2, 151 + mouseY /20);
  point(152 + mouseX/ 20 +2, 113 + mouseY /20);
  point(153 + mouseX/ 20 +2, 15 + mouseY /20);
  point(155 + mouseX/ 20 +2, 192 + mouseY /20);
  point(162 + mouseX/ 20 +2, 9 + mouseY /20);
  point(164 + mouseX/ 20 +2, 244 + mouseY /20);
  point(164 + mouseX/ 20 +2, 330 + mouseY /20);
  point(166 + mouseX/ 20 +2, 8 + mouseY /20);
  point(166 + mouseX/ 20 +2, 40 + mouseY /20);
  point(166 + mouseX/ 20 +2, 362 + mouseY /20);
  point(167 + mouseX/ 20 +2, 167 + mouseY /20);
  point(172 + mouseX/ 20 +2, 209 + mouseY /20);
  point(173 + mouseX/ 20 +2, 300 + mouseY /20);
  point(175 + mouseX/ 20 +2, 16 + mouseY /20);
  point(175 + mouseX/ 20 +2, 120 + mouseY /20);
  point(177 + mouseX/ 20 +2, 300 + mouseY /20);
  point(179 + mouseX/ 20 +2, 64 + mouseY /20);
  point(183 + mouseX/ 20 +2, 363 + mouseY /20);
  point(186 + mouseX/ 20 +2, 310 + mouseY /20);
  point(187 + mouseX/ 20 +2, 399 + mouseY /20);
  point(193 + mouseX/ 20 +2, 123 + mouseY /20);
  point(195 + mouseX/ 20 +2, 167 + mouseY /20);
  point(196 + mouseX/ 20 +2, 71 + mouseY /20);
  point(196 + mouseX/ 20 +2, 121 + mouseY /20);
  point(196 + mouseX/ 20 +2, 134 + mouseY /20);
  point(196 + mouseX/ 20 +2, 283 + mouseY /20);
  point(198 + mouseX/ 20 +2, 12 + mouseY /20);
  point(199 + mouseX/ 20 +2, 182 + mouseY /20);
  point(199 + mouseX/ 20 +2, 214 + mouseY /20);
  point(199 + mouseX/ 20 +2, 269 + mouseY /20);
  point(199 + mouseX/ 20 +2, 400 + mouseY /20);
  point(200 + mouseX/ 20 +2, 288 + mouseY /20);
  point(202 + mouseX/ 20 +2, 173 + mouseY /20);
  point(208 + mouseX/ 20 +2, 349 + mouseY /20);
  point(211 + mouseX/ 20 +2, 30 + mouseY /20);
  point(212 + mouseX/ 20 +2, 309 + mouseY /20);
  point(212 + mouseX/ 20 +2, 365 + mouseY /20);
  point(216 + mouseX/ 20 +2, 222 + mouseY /20);
  point(218 + mouseX/ 20 +2, 262 + mouseY /20);
  point(219 + mouseX/ 20 +2, 339 + mouseY /20);
  point(219 + mouseX/ 20 +2, 352 + mouseY /20);
  point(222 + mouseX/ 20 +2, 335 + mouseY /20);
  point(224 + mouseX/ 20 +2, 253 + mouseY /20);
  point(225 + mouseX/ 20 +2, 87 + mouseY /20);
  point(228 + mouseX/ 20 +2, 163 + mouseY /20);
  point(228 + mouseX/ 20 +2, 387 + mouseY /20);
  point(229 + mouseX/ 20 +2, 239 + mouseY /20);
  point(231 + mouseX/ 20 +2, 217 + mouseY /20);
  point(231 + mouseX/ 20 +2, 264 + mouseY /20);
  point(232 + mouseX/ 20 +2, 327 + mouseY /20);
  point(234 + mouseX/ 20 +2, 180 + mouseY /20);
  point(241 + mouseX/ 20 +2, 305 + mouseY /20);
  point(242 + mouseX/ 20 +2, 208 + mouseY /20);
  point(243 + mouseX/ 20 +2, 379 + mouseY /20);
  point(244 + mouseX/ 20 +2, 350 + mouseY /20);
  point(245 + mouseX/ 20 +2, 360 + mouseY /20);
  point(245 + mouseX/ 20 +2, 382 + mouseY /20);
  point(248 + mouseX/ 20 +2, 284 + mouseY /20);
  point(248 + mouseX/ 20 +2, 390 + mouseY /20);
  point(249 + mouseX/ 20 +2, 30 + mouseY /20);
  point(253 + mouseX/ 20 +2, 153 + mouseY /20);
  point(255 + mouseX/ 20 +2, 15 + mouseY /20);
  point(257 + mouseX/ 20 +2, 7 + mouseY /20);
  point(257 + mouseX/ 20 +2, 176 + mouseY /20);
  point(261 + mouseX/ 20 +2, 266 + mouseY /20);
  point(263 + mouseX/ 20 +2, 34 + mouseY /20);
  point(266 + mouseX/ 20 +2, 133 + mouseY /20);
  point(267 + mouseX/ 20 +2, 35 + mouseY /20);
  point(268 + mouseX/ 20 +2, 230 + mouseY /20);
  point(269 + mouseX/ 20 +2, 21 + mouseY /20);
  point(269 + mouseX/ 20 +2, 140 + mouseY /20);
  point(269 + mouseX/ 20 +2, 329 + mouseY /20);
  point(274 + mouseX/ 20 +2, 4 + mouseY /20);
  point(275 + mouseX/ 20 +2, 378 + mouseY /20);
  point(276 + mouseX/ 20 +2, 355 + mouseY /20);
  point(277 + mouseX/ 20 +2, 12 + mouseY /20);
  point(278 + mouseX/ 20 +2, 99 + mouseY /20);
  point(278 + mouseX/ 20 +2, 310 + mouseY /20);
  point(283 + mouseX/ 20 +2, 146 + mouseY /20);
  point(283 + mouseX/ 20 +2, 393 + mouseY /20);
  point(284 + mouseX/ 20 +2, 99 + mouseY /20);
  point(284 + mouseX/ 20 +2, 397 + mouseY /20);
  point(286 + mouseX/ 20 +2, 235 + mouseY /20);
  point(287 + mouseX/ 20 +2, 251 + mouseY /20);
  point(288 + mouseX/ 20 +2, 346 + mouseY /20);
  point(289 + mouseX/ 20 +2, 112 + mouseY /20);
  point(290 + mouseX/ 20 +2, 314 + mouseY /20);
  point(291 + mouseX/ 20 +2, 117 + mouseY /20);
  point(292 + mouseX/ 20 +2, 169 + mouseY /20);
  point(293 + mouseX/ 20 +2, 15 + mouseY /20);
  point(293 + mouseX/ 20 +2, 117 + mouseY /20);
  point(294 + mouseX/ 20 +2, 212 + mouseY /20);
  point(296 + mouseX/ 20 +2, 282 + mouseY /20);
  point(299 + mouseX/ 20 +2, 375 + mouseY /20);
  point(300 + mouseX/ 20 +2, 82 + mouseY /20);
  point(303 + mouseX/ 20 +2, 73 + mouseY /20);
  point(304 + mouseX/ 20 +2, 345 + mouseY /20);
  point(305 + mouseX/ 20 +2, 164 + mouseY /20);
  point(306 + mouseX/ 20 +2, 4 + mouseY /20);
  point(309 + mouseX/ 20 +2, 181 + mouseY /20);
  point(311 + mouseX/ 20 +2, 171 + mouseY /20);
  point(311 + mouseX/ 20 +2, 283 + mouseY /20);
  point(312 + mouseX/ 20 +2, 93 + mouseY /20);
  point(312 + mouseX/ 20 +2, 106 + mouseY /20);
  point(314 + mouseX/ 20 +2, 34 + mouseY /20);
  point(315 + mouseX/ 20 +2, 375 + mouseY /20);
  point(317 + mouseX/ 20 +2, 306 + mouseY /20);
  point(323 + mouseX/ 20 +2, 103 + mouseY /20);
  point(323 + mouseX/ 20 +2, 120 + mouseY /20);
  point(323 + mouseX/ 20 +2, 201 + mouseY /20);
  point(323 + mouseX/ 20 +2, 338 + mouseY /20);
  point(326 + mouseX/ 20 +2, 320 + mouseY /20);
  point(328 + mouseX/ 20 +2, 93 + mouseY /20);
  point(328 + mouseX/ 20 +2, 212 + mouseY /20);
  point(331 + mouseX/ 20 +2, 375 + mouseY /20);
  point(332 + mouseX/ 20 +2, 227 + mouseY /20);
  point(333 + mouseX/ 20 +2, 143 + mouseY /20);
  point(333 + mouseX/ 20 +2, 144 + mouseY /20);
  point(334 + mouseX/ 20 +2, 125 + mouseY /20);
  point(335 + mouseX/ 20 +2, 331 + mouseY /20);
  point(340 + mouseX/ 20 +2, 343 + mouseY /20);
  point(341 + mouseX/ 20 +2, 6 + mouseY /20);
  point(342 + mouseX/ 20 +2, 41 + mouseY /20);
  point(342 + mouseX/ 20 +2, 199 + mouseY /20);
  point(343 + mouseX/ 20 +2, 260 + mouseY /20);
  point(344 + mouseX/ 20 +2, 255 + mouseY /20);
  point(345 + mouseX/ 20 +2, 86 + mouseY /20);
  point(349 + mouseX/ 20 +2, 94 + mouseY /20);
  point(350 + mouseX/ 20 +2, 310 + mouseY /20);
  point(355 + mouseX/ 20 +2, 336 + mouseY /20);
  point(356 + mouseX/ 20 +2, 51 + mouseY /20);
  point(358 + mouseX/ 20 +2, 284 + mouseY /20);
  point(360 + mouseX/ 20 +2, 366 + mouseY /20);
  point(364 + mouseX/ 20 +2, 191 + mouseY /20);
  point(365 + mouseX/ 20 +2, 159 + mouseY /20);
  point(370 + mouseX/ 20 +2, 356 + mouseY /20);
  point(371 + mouseX/ 20 +2, 214 + mouseY /20);
  point(371 + mouseX/ 20 +2, 340 + mouseY /20);
  point(373 + mouseX/ 20 +2, 158 + mouseY /20);
  point(373 + mouseX/ 20 +2, 327 + mouseY /20);
  point(376 + mouseX/ 20 +2, 333 + mouseY /20);
  point(376 + mouseX/ 20 +2, 368 + mouseY /20);
  point(378 + mouseX/ 20 +2, 33 + mouseY /20);
  point(388 + mouseX/ 20 +2, 29 + mouseY /20);
  point(388 + mouseX/ 20 +2, 60 + mouseY /20);
  point(388 + mouseX/ 20 +2, 296 + mouseY /20);
  point(391 + mouseX/ 20 +2, 333 + mouseY /20);
  point(395 + mouseX/ 20 +2, 325 + mouseY /20);
  point(396 + mouseX/ 20 +2, 232 + mouseY /20);
  point(397 + mouseX/ 20 +2, 131 + mouseY /20);
  point(399 + mouseX/ 20 +2, 41 + mouseY /20);
  point(399 + mouseX/ 20 +2, 290 + mouseY /20);
  point(400 + mouseX/ 20 +2, 195 + mouseY /20);

  //-------------------------------------------------------- 3D Planet

  //Actual Planet
  fill(253, 170, 104);
  strokeWeight(1);
  stroke(0);
  ellipse(400 + mouseX/ 50, 0 + mouseY /50, 250, 250);
  //craters on the planet
  fill(222, 153, 96);
  ellipse((336 + mouseX/ 40), (9 + mouseY /50), 23, 23);
  ellipse(348 + mouseX/ 50, 85 + mouseY /50, 14, 14);
  ellipse(385 + mouseX/ 50, 45 + mouseY /50, 50, 50);
  fill(231, 132, 80);
  ellipse(320 + mouseX/ 50, 43 + mouseY /50, 28, 28);
  ellipse(383 + mouseX/ 50, 93 + mouseY /50, 10, 10);

  //3D Left Eye
  noStroke();
  fill(255, 0, 0, 50);
  ellipse((400 + mouseX/ 40) -4, 0 + mouseY /50, 250, 250);
  //craters on the planet
  fill(255, 0, 0, 50);
  ellipse((336 + mouseX/ 40) -4, 9 + mouseY /50, 23, 23);
  ellipse((348 + mouseX/ 40) -4, 85 + mouseY /50, 14, 14);
  ellipse((385 + mouseX/ 40) -4, 45 + mouseY /50, 50, 50);
  fill(255, 0, 0, 50);
  ellipse((320 + mouseX/ 40) -4, 43 + mouseY /50, 28, 28);
  ellipse((383 + mouseX/ 40) -4, 93 + mouseY /50, 10, 10);

  //3D Right Eye
  fill(0, 255, 255, 50);
  ellipse((400 + mouseX/ 40) +4, 0 + mouseY /50, 250, 250);
  //craters on the planet
  stroke(0, 255, 255, 50);
  ellipse((336 + mouseX/ 40) +4, 9 + mouseY /50, 23, 23);
  ellipse((348 + mouseX/ 40) +4, 85 + mouseY /50, 14, 14);
  ellipse((385 + mouseX/ 40) +4, 45 + mouseY /50, 50, 50);
  stroke(0, 255, 255, 50);
  ellipse((320 + mouseX/ 40) +4, 43 + mouseY /50, 28, 28);
  ellipse((383 + mouseX/ 40) +4, 93 + mouseY /50, 10, 10);

  //-------------------------------------------------------- 2D Rocket (Floats In Front)

  noStroke();

  //Flames

  fill(255+ int(sin(millis())*50), 232, 8); //Yellow Flame
  ellipse(200, 280, 55, 55);
  triangle(175, 290, 200+int(sin(millis())*10), 350, 225, 290);

  fill(255 + int(sin(millis())*50), 206, 0); //Orange Flame
  ellipse(200, 280, 40, 40);
  triangle(185, 290, 200+int(sin(millis())*10), 335, 215, 290);

  fill(255 + int(sin(millis())*100), 59, 60); //Red Flame
  ellipse(200, 280, 20, 20);
  triangle(193, 280, 200+int(sin(millis())*10), 315, 207, 280);

  //Side Thrusters

  fill(15, 104, 81); // Wings
  triangle(140, 160, 80, 240, 140, 230);
  triangle(260, 160, 320, 240, 260, 230);

  fill(140, 135, 129); // Exhausts
  triangle(140, 220, 115, 260, 165, 260);
  triangle(260, 220, 235, 260, 285, 260);

  ellipse(140, 160, 50, 190); // Thrusters
  ellipse(260, 160, 50, 190);

  fill(216, 75, 35); // Cover
  ellipse(140, 160, 50, 160); 
  ellipse(260, 160, 50, 160);

  fill(211, 23, 25); // Red Belt
  rect(140, 160, 50, 3);
  rect(260, 160, 50, 3);

  //Main Engine
  fill(140, 135, 129);
  triangle(200, 240, 160, 280, 240, 280); // Exhaust
  ellipse(200, 150, 90, 240); // Engine Body

  //Body

  fill(212, 119, 46); // Main Body Cover
  ellipse(200, 150, 90, 200);
  fill(211, 23, 25);

  rect(200, 150, 90, 5); // Red Belt

  fill(15, 104, 81); // Wing
  ellipse(200, 250, 15, 100);

  //Window

  fill(140, 135, 129); // Frame
  ellipse(200, 100, 40, 40);

  fill(61, 137, 167); //Glass
  ellipse(200, 100, 30, 30);
}

void mousePressed() {
  frameRate(1);

  //------------------------------------------------------Draw Astronaut
  
  stroke(0);

  fill(255); // Helmet
  ellipse(200, 95, 10, 10);
  noStroke();
  fill(234, 192, 134);

  ellipse(200, 95, 6, 6); //Head

  rect(209, 104, 6, 4); //Left Hand

  rect(191, 104, 6, 4); //Right Hand

  stroke(0); //Eyes
  point(199, 93);
  point(201, 93);

  line(199, 97, 201, 97); //Mouth

  fill(255); // Body
  rect(200, 107, 12, 12);
  noStroke();

  fill(255, 0, 0); // Canada Flag
  rect(204, 105, 5, 3);
  stroke(255);
  point(202, 103);
  point(203, 103);
  point(204, 103);
  point(202, 104);
  point(204, 104);
  point(202, 105);
  point(203, 105);
  point(204, 105);

  println("Oh, Canada!");
}