teaching machines

Madeup Status Report #8

Last week I submitted my grades and breathed a big sigh of relief. I love summers. It’s time to work on Madeup!

My students and I did make considerable progress during the school year. I mentioned many things in the last status report and we’ve accomplished the following since then:

  • Added a solid wireframe mode. People like to see triangles, but pure wireframe can be hard to parse.
  • Added support for saving paths and reissuing them. This makes generating surfaces a little simpler. The twisted structure above was generated using this feature. We capture a path and then echo it back out under new twist and offset transformations:
    -- base square
    moveto 5, -5, 0
    repeat 4
      move 10
      yaw -90
    end
    
    -- capture it for reuse
    square = path
    
    echo square
    
    -- issue bunch more squares, twisting as we go
    repeat 20
      translate 0, 0, 5
      rotate 0, 0, 1, 5
      echo square
    end
    identity
    
    -- connect all squares into a solid
    surface 5, 21
    
  • Added autorotate when the mouse is released with inertia.
  • Added keyboard shortcuts for solidifying, pathifying, and fitting.
  • Achieved W3C validation.
  • Added support for embedding Madeup in other pages. Like this.
  • Began development of interactive “text movie” tutorials. Several years ago, I started work on a recorder to capture audio and my edits in a plain text editor. Instead of capturing frames of inert pixels, these text movies can be played back, resized, scrolled through, and edited.
  • Allowed revolves of non-closed polygons.
  • Added queries for the forward, up, and right vectors.
  • Added a movex command which is like move, but is influenced by any previous rotate, scale, or translate transformations.
  • Wrote a paper on blocks vs. text languages for a special issue of VLSS.
  • Presented an Ask a Scientist talk on Madeup at a local coffee shop.

Now, let’s talk about our goals for this summer. Here’s what I have in mind:

  1. Develop a desktop client that doesn’t need an Internet connection. I have spent the last week getting this started:
  2. Fix bugs. I have a list.
  3. Find a better host. The Madeup server currently runs on university machine. This environment is too slow, has been knocked down by several power outages, and gives my sysadmins more headache than they already have. I’m experimenting with a $5/month droplet on Digital Ocean that seems to fix all these problems. I’m always on the lookout for grants to help pay for a higher-tier plan. g++ crashed on me when it ran out of the 512 MB memory I get on my current plan.
  4. Improve code performance. Things get kinda slow in loops, like those often used to generate vertices for the surface solidifier.
  5. Make stuff with some summer school kids at my sons’ elementary school.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *