W. Randolph Franklin, Professor

Electrical, Computer, and Systems Engineering Dept.,
6026 JEC,
Rensselaer Polytechnic Institute,
110 Eighth St,
Troy NY, 12180
USA

Communication

Vcards         How To Email Me         GPG key
phone: +1.518.276.6077 (let it ring many times)
Travel Directions to RPI

Professional

BSc (Toronto), AM, PhD, Applied Math (Harvard).
Program Director, Numeric, Symbolic, and Geometric Computation Program, CISE, National Science Foundation (2000-2002).
Visiting Prof, UC Berkeley, 1985-86.
Visiting positions at Genoa, Laval, CSIRO Canberra, National University of Singapore, 1992-1993.
supervised 11 PhD and 60 masters graduates.
Brief Bio       Long resume
          

Teaching, students

ECSE-4750 Computer Graphics Fall 2008
ECSE-6800 Advanced Computer Graphics Spring 2008
Older courses
Advice To Grad Student Applicants
Advice To DQE Examinees
Teaching philosophy (Jan 2007)
Famous RPI graphics-related grads

Recent research

FWCG

Operating on large geometric datasets,

Fall Workshop in Computational Geometry (FWCG) 2008, 1 Nov 2008, extended abstract, talk, (11/2/2008). Longer papers and talks on the same topic:

  1. Analysis of mass properties of the union of millions of polygedra
  2. Mass properties of the union of millions of identical cubes]
  3. related talk
  4. earlier but more detailed talk

ACM GIS

3 presentations by my students at 16th ACM SIGSPATIAL International Conference on Advances in Geographic Information Systems (ACM GIS 2008), Irvine CA, 5-7 Nov 2008.
  1. Parallel ODETLAP for terrain compression and reconstruction. paper, talk.
  2. Path planning on a compressed terrain. poster, talk.
  3. Evaluating hydrology preservation of simplified terrain representations. poster, talk.

Research

All research
GeoStar: My current major theme is a DARPA-funded project for representing and operating on terrain, that is, elevation.
Computational Geometry: algorithms useful for large datasets, mostly in 3D, and usually implemented.
Details: strategy · computational cartography · computational geometry · other topics · proposal writing notes · misc notes · former masters (61) and doctoral (11) students · new topics.

Things that don't fit anywhere else

Everything

New on this site

HW I have used (at least a little)

DEC PDP 1, 8, 10, 11, Vax 11/780; IBM 1620, 7094, 360, 370, 5100; Prime; Lisp Machine; Motorola 6811, 68000, 68010, 68020; Sequent Balance; CM-2; Intel 8051, 8086, Pentium, Xeon; Sun Sparc; AMD Opteron.

Wordlengths: 8, 12, 16, 32, 36 (containing 5 7-bit chars plus 1 spare bit)

How to program a low-level machine

  1. Toggle in a bootstrap loader on the front panel.
  2. Read in a paper tape with a text editor.
  3. Read in a paper tape with your program, written in assembly.
  4. Use TECO to edit your program on the teletypewriter.
  5. Punch out a paper tape with the new version of your program.
  6. Read in a paper tape with the assembler.
  7. Read in the paper tape with your program.
  8. Punch out your assembled program.
  9. Read in your assembled program.
  10. Run it.
  11. Correct small errors by toggling on the front panel new values for certain words in core.
  12. For big errors, go back to step 2.

How to program a slightly higher level machine

  1. Write out your program on paper.
  2. Punch your program onto cards, one card per line, using a machine called a keypunch, the size of a desk.
  3. Correct any typos by inserting a card into a read slot in the keypunch, duplicating it onto a new card up to the typo, typing the correct char, and then duplicating the rest of the line.
  4. If a card is damaged it may jam in the keypunch. Use a card saw (like a hacksaw blade) to pry it out in pieces.
  5. Add job control cards before and after your program to tell the computer how to compile and run it and what files it will read and write. When creating a new file, specify a few parameters:
    1. name
    2. volume it will go in (like a partition)
    3. whether to catalog it (so future users don't need to know the partition)
    4. is the file new or existing?
    5. disposition when the job finishes, e.g., keep or delete
    6. disposition if the job ends abnormally
    7. type of units of storage to allocate, e.g., cylinder or track
    8. number of those units
    9. number more to allocate whenever more space is needed
    10. whether to keep or release any extra storage at the end
    11. format of records in the file, e.g., fixed or variable length
    12. if fixed, the record length
    13. how the records are grouped into blocks
    Most of the above are required and do not have useful defaults. Example:
    //SYSUT2 DD DSN=MYFILE,DISP=(NEW,KEEP,DELETE),
    // SPACE=(CYL,(5,1),RLSE),RECFM=(FB,80,3200)
  6. Use a magic marker to draw a diagonal line across the top edge of the card desk to aid in sorting the cards if you drop them.
  7. Read the card deck into the computer.
  8. Wait for it to print out the result on 15" wide fanfold paper.
  9. Examine the output. Add lines to your program by punching new cards and inserting them into the deck.
  10. Repeat.

This page looks best in Firefox, Mozilla, or Epiphany, almost as good in Opera, and worst in Explorer.

nn