How to keep an Obliviot Busy
(some assembly required)

  1. Print the image in landscape mode.
  2. Cut along the lines
  3. Twist one end of the strip half a turn
  4. Glue the ends together, 1 next to 1 and 2 next to 2
  5. Put it down on your victim's desk or leave it lying around the house.
  6. Watch to see your victim look for the "other side"

      Properly assembled, this "Mobius strip" has only one side.

      If you enjoyed this prank do-it-yourself item, please donate to help with webmaster's climbing medical bills. Thank you.
      (South Carolina decided that low-income residents don't need help with medical premiumm, and I had to spend 17 days in two hospitals last September.)

      BASIC QB64.NET program that calculated the multi-color Mobius Strip in top right corner of image:

      xx = 1440: yy = 792: SCREEN _NEWIMAGE(xx, yy, 32) '              set up QB64 screen        PROGRAM: 0-mobius-strip.bas
      cx = xx \ 2: cy = yy \ 2 + 20 '                                  calculate center of figure
      LINE (0, 0)-(xx - 1, yy - 1), _RGB(255, 255, 255), BF '          make entire screen white
      LOCATE 1, 1: PRINT "Do you know how to keep an obliviot busy?" ' text that will appear on Mobius strip in white
      LOCATE 2, 1: PRINT "            (see other side!)            "
      LOCATE 3, 1: PRINT "(not other side!)       (not other side!)" ' and in black, reversed
      FOR u = -_PI TO _PI STEP _PI / 1250 '                       FOR every position from one end of strip to other
          FOR v = -1 TO 1 STEP .001 '                                 FOR every position across width of strip
              y = (4 + v * COS(u / 2)) * COS(u) '                         Calculate (x,y) coordinates of point
              x = (4 + v * COS(u / 2)) * SIN(u) '
              z = v * SIN(u / 2) '                                        Calculate altitude of point above/below
              rc = INT(z * 127 + 128) '                                   red color
              gc = INT(z * 127 + 255) MOD 100 '                           green color
              bc = INT(128 - z * 127) '                                   blue color
              zcolor = _RGB(rc, gc, bc) '                                 point color
              xt = INT((u + 1.8) / 3.6 * 327) '                           (xt,yt) coordinates of text to copy
              yt = 31 - INT((v + .6) / 1.2 * 31) '                        IF white at (xt,yt) white it on strip (next line)
              IF xt >= 0 AND xt < 328 AND yt >= 0 AND yt < 32 THEN IF POINT(xt, yt) MOD 10 THEN zcolor = _RGB(255, 255, 255)
              uu = u + _PI + 2 * _PI * (u > 0) '                          rotated value of UU for backward text
              xt = 327 - INT((uu + 1.5) / 3 * 327) '                      (xt,yt) coordinates for 'not other side' text
              yt = 47 - INT((v + 2.5) / 1.4 * 31) + 32 '                  IF white at (xt,yt) black it on strip (next line)
              IF xt >= 0 AND xt < 328 AND yt > 31 AND yt < 48 THEN IF POINT(xt, yt) MOD 10 THEN zcolor = _RGB(0, 0, 0)
              PSET (cx + x * 80, cy - y * 80), zcolor '                   plot a point at that position with that color
          NEXT '                                                      Increment v
      NEXT '                                                      Increment u
      cc = 79