
 + The Python User Group Austria X-Mas Puzzle, 2021 Edition +
 ============================================================

 "Hi" from the Twilight Zone! It's hot in here. Like 60 degrees
 hot, but that doesn't matter, because it's neither Fahrenheit
 nor Celsius. But I'm schweifing ab. This year, we have a very
 special puzzle for you, a three-dimensional puzzle from the
 higher planes of virtuality. Let's get started.

 We got a few files here:
   - puzzle.info (this file)
   - tree_scene.zip (a password-protected ZIP file)
   - puzzle.mesh ("data dump"; obfuscated 3D mesh)

 You have to obtain the password for the ZIP file by rendering
 the 3D data in puzzle.mesh as described below. This should
 leave you with a 9-character password that you can use to
 open the ZIP file, which contains a small present for you.

 So, what I know about this data dump is that it starts with
 a lot of coordinates in 3D space (X, Y, Z). Then, after a
 "---"-separator line, there's additional data that describes
 triangles in this 3D space, referencing the above coordinates
 by index (so the indices "0 1 2" means the first, second and
 third item in the vertex list form a triangle). My source
 further tells me that the Y coordinate would map directly
 to the Y coordinate in a possible 2D projection, but the X
 coordinate has been rotated into the X and Z coordinates to
 protect the secret code from prying eyes. In other words,
 you have to find an angle "A" so that the triangles drawn
 from the data using y = Y and x = X * cos(A) - Z * sin(A)
 (where X, Y and Z are the vertex data, and x and y are the
 coordinates in the [-1, +1] 2D space on the screen). It is
 probably easiest to draw the data with different angles and
 see if anything useful comes out of it.

 Also, I hear that pygame could be a good candidate for
 solving this visually, with pygame.draw.polygon() being a
 function that can be used to draw a triangle on the screen.

                                          -- thp, 2021-12-22
