Notes

  • Use HackLeague materials e.g. textures.
  • cf HackLeague regarding criteria
  • URL checking makes cheating too easy, consider a form spam protected submission

Challenges

Add a cube

Go to http://jsbin.com/ticisi/edit?html,output and complete the challenge, good luck!

Estimated time
2min
Requires
browser supported webGL
Skills
HTML
Goal
understand 3D coordinates

Rotation

Rotate another part of another letter in red

http://jsbin.com/limigel/edit?html,output

Ask to do the same for a letter in green <a-entity rotation="0 180 0"> ... half of a letter e.g bars of an E </a-entity>

concepts
rotation

Add several cubes at once

http://jsbin.com/zoxifow/edit?html,output

add cubes with x=0 z=-5 and y going from 0 to 5 N featuring existing loops for the other 2 parts of the letter

concepts
createElement + loop

Display a texture

http://jsbin.com/vewuxec/edit?html,output

<a-box src="#preloadedtexture"></a-box> (with a letter or URL directly as solution)

concepts
texture

Display a sky texture

http://jsbin.com/zozovu/edit?html,output

<a-sky src="#preloadedsky"></a-sky> (saved from a 360 snapshot with a letter or URL directly as solution)

concepts
360

Groups and hierarchy

http://jsbin.com/rilivo/edit?html,output

concepts
scene graph

Animate a cube along its axis

http://jsbin.com/gigodek/edit?html,output

animate a cube with its position attribute to change on y and form an I

concepts
animation

Animate a cube along a pivot

animate a cube with its rotation attribute to form an O

concepts
pivot

Scale up an existing group

http://jsbin.com/sopuvod/edit?html,output

to be able to read change from 0.0001 to 1

concepts
scale

ECS, what is that

http://jsbin.com/sopuvod/edit?html,output

concepts
entity component system

Using an existing component

http://jsbin.com/gixilis/edit?html,output

concepts
3rd party component

Registering a new component

http://jsbin.com/cubehug/edit?html,output

concepts
own component

Next challenges

  • network e.g. get the position of a remote element via firebase
    • can be as final challenge to avoid conflicts
  • shader e.g. fix a GLSL shader where value passed as parameters allows text to become visible
  • add and use a mixin (e.g. size + color to hide part of letters hidding the solution)
  • register and use a custom component that creates a letter, make a word out of it as solution.
  • repeated or timed animation via JS
  • gaze interaction
  • positioning and changing visuals based on a dataset
  • find a safer scheme than 1 out of 26 possibilities that are too fast to exhaust
  • leveraging other JS frameworks e.g. D3, display a bar graph using the provided dataset. The bars will align to hide all but one word, that's your solution.
  • Loading 3D assets, load the collada model provided, move and scale it around until you can read the word, that's your solution.
  • IoT exercise, connect to an IoT device and display the data
  • server side exercise, change the URL of the existing code to pull data from your own server
  • design an A-painter brush then use it to clear it

Notes

  • crescendo in time
  • few exercises done per day
    • sharing with testing for next day