I Drew a Tesseract (Without even knowing how)

We all know that a tesseract (hypercube) is a 4D object analogous to a 3D cube or a 2D square. I decided that I wanted to draw one, despite the fact that I have no idea how. I did know, however, that an edge of a cube is a set of points in which two out of the three spatial coordinates are extremal (relative to the cube's size), and one can vary continuously between the extremes.

What if we did the same thing for a 4D hypercube? Create regions of points where three out of the four spatial dimensions are at extreme values, and only one can vary continously. I wrote a program based on the following processing:

1) Conceptualize a 4D coordinate system (x,y,z,w)

2) Randomly generate a set of four 4D orthogonal basis vectors. These vectors make the plots more interesting than they presumably would be if we used the simple (1,0,0,0), (0,1,0,0), (0,0,1,0), (0,0,0,1) set. See the attached code for these vectors.

3) Each plotted point is a weighted sum of the vectors from Step 2, where each basis vector has its own weight

4) Randomly generate the weights so that three of them are at extreme values (either +1 or -1), and the remaining weight varies continuously between -1 and +1. This gives us points along the edges of the 4D hypercube.

5) Make scatter plots with two of the four dimensions. Plotted combinations are xy, xz, xw, yz, yw, zw.

Plots and code are below. I think the first and the sixth plots are the coolest to look at. These are 2D projections of 4D hypercubes, generated purely from randomly generated points. They are not super high-res because I didn't want to put too many points into Excel.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import math
import random

sx = 0.509967921254
sy = -0.18278826241
sz = -0.264779918013
sw = 0.797754978662

tx = 0.536030522728
ty = 0.352271346186
tz = 0.767147895871
tw = -0.00734503318408

ux = 0.225111754835
uy = 0.806999040406
uz = -0.529133775059
uw = -0.134618545946

vx = 0.633989716835
vy = -0.437354662725
vz = -0.247769765951
vw = -0.587716669068

for j in range(0,10**4):

    var = random.randint(1,4)

    if var == 1:

        s = random.uniform(-1.0,1.0)

        t = (-1.0)**(random.randint(0,1))
        u = (-1.0)**(random.randint(0,1))
        v = (-1.0)**(random.randint(0,1))

    if var == 2:

        t = random.uniform(-1.0,1.0)

        s = (-1.0)**(random.randint(0,1))
        u = (-1.0)**(random.randint(0,1))
        v = (-1.0)**(random.randint(0,1))

    if var == 3:

        u = random.uniform(-1.0,1.0)

        s = (-1.0)**(random.randint(0,1))
        t = (-1.0)**(random.randint(0,1))
        v = (-1.0)**(random.randint(0,1))

    if var == 4:

        v = random.uniform(-1.0,1.0)

        s = (-1.0)**(random.randint(0,1))
        t = (-1.0)**(random.randint(0,1))
        u = (-1.0)**(random.randint(0,1))

    x = s*sx + t*tx + u*ux + v*vx
    y = s*sy + t*ty + u*uy + v*vy
    z = s*sz + t*tz + u*uz + v*vz
    w = s*sw + t*tw + u*uw + v*vw

    #print x,y
    #print x,z
    #print x,w
    #print y,z
    #print y,w
    print z,w

#Geometry

Note by Steven Chase
2 years, 5 months ago

No vote yet
1 vote

  Easy Math Editor

This discussion board is a place to discuss our Daily Challenges and the math and science related to those challenges. Explanations are more than just a solution — they should explain the steps and thinking strategies that you used to obtain the solution. Comments should further the discussion of math and science.

When posting on Brilliant:

  • Use the emojis to react to an explanation, whether you're congratulating a job well done , or just really confused .
  • Ask specific questions about the challenge or the steps in somebody's explanation. Well-posed questions can add a lot to the discussion, but posting "I don't understand!" doesn't help anyone.
  • Try to contribute something new to the discussion, whether it is an extension, generalization or other idea related to the challenge.
  • Stay on topic — we're all here to learn more about math and science, not to hear about your favorite get-rich-quick scheme or current world events.

MarkdownAppears as
*italics* or _italics_ italics
**bold** or __bold__ bold

- bulleted
- list

  • bulleted
  • list

1. numbered
2. list

  1. numbered
  2. list
Note: you must add a full line of space before and after lists for them to show up correctly
paragraph 1

paragraph 2

paragraph 1

paragraph 2

[example link](https://brilliant.org)example link
> This is a quote
This is a quote
    # I indented these lines
    # 4 spaces, and now they show
    # up as a code block.

    print "hello world"
# I indented these lines
# 4 spaces, and now they show
# up as a code block.

print "hello world"
MathAppears as
Remember to wrap math in \( ... \) or \[ ... \] to ensure proper formatting.
2 \times 3 2×3 2 \times 3
2^{34} 234 2^{34}
a_{i-1} ai1 a_{i-1}
\frac{2}{3} 23 \frac{2}{3}
\sqrt{2} 2 \sqrt{2}
\sum_{i=1}^3 i=13 \sum_{i=1}^3
\sin \theta sinθ \sin \theta
\boxed{123} 123 \boxed{123}

Comments

The last picture is really the best! I think it's like a stack of 2 cubes where the middle layer is pushed outside a little bit to make parallelograms as sides. Then, this part is copied, rotated 90° around the vertical axis and the top and bottom square of the two copies are aligned. Thank you for giving me a new understanding of the four dimensional world!

Henry U - 2 years, 5 months ago

Log in to reply

Yeah, I agree. Two cubes with connected vertices, and different orientations of that within the same object, with no contradictions. Thanks for commenting, and Happy New Year

Steven Chase - 2 years, 5 months ago
×

Problem Loading...

Note Loading...

Set Loading...