Make an an app to draw a picture with GPS


  1. Watch this video of two dogs' GPS traces while playing
  2. Watch this video of people's GPS traces overlaid on video
  3. Explore the gallery of a GPS artist
  4. Read his statement


  1. You may work in groups of up to 2


  1. Write an Android application to collect your GPS positions
  2. It should support a "pen up" and "pen down" button
  3. It should support multiple colors rgb=([0-255], [0-255], [0-255])
  4. It should keep track of "strokes", which are sequences of GPS tuples when the pen is down
  5. It should support an "upload" function, which will send all the recorded strokes to a server for display
  6. The server will support viewing all the strokes of one drawing after they have been uploaded
  7. The server will be provided
  8. We expect the coding will take about 8 hours


  1. Go out and make a drawing with your app
  2. You should plan it before you go out
  3. You can use multiple devices if you appropriately plan your various id's
  4. Your drawing can be of anything you want
  5. We are expecting something on the complexity of these: butterfly,snail, dollar sign. The distance isn't important.
  6. For calibration, a smiley face would be a C, a block lettered word would be a B, a well-executed multi-colored anteater would be an A.
  7. We expect that the drawing would take about 3 hours
  8. Your grade will be adjusted based on how your group rate's your performance.


  1. Submit the group_id, the drawing_id, the members of your group, and a short explanation of your drawing via a EEE quiz
  2. Evaluate your group using this quiz.


  • The best drawings will be displayed
  • Due date: May 10, 11:59pm

Troubleshooting the system

    structure diagram
  1. Check to see if the server is online by checking if it has an Apache webserver running:, you should see
    It works!
    , if you don't then contact Prof. Patterson
  2. Check to see if the software that runs the API is working (doesn't use Apache):, you should see
    {"error":"false","version":"Spring 2015 ICS 163 server"}
    , if you don't then contact Prof. Patterson
  3. Check to see if the web interface to the API works:, you should see a form asking for the group and drawing name. Enter "group_name" and "drawing_name" to verify the web interface is connecting to the API. If it doesn't, contact Prof. Patterson.
  4. Once you have an Android application running, you can check the API log by going here:

Recommended strategy

  1. Study the lecture notes
  2. Make an application that just recovers the lastKnownPosition
  3. Make a new application that reports location continuously
  4. Make sure you understand the control flow in those applications
  5. Design a user interface for your final application in Android Studio
  6. Convince yourself that you can successfully upload a stroke to the server
  7. Add color
  8. Plan your trip
  9. Go draw!
  10. Fix all the bugs that you suddenly discover
  11. Try again and iterate