I like the rounded and nicely-spaced design of 3DAndy's Pentominos on Thingiverse, but wanted to print some tetrominos instead, for math/puzzles (for example, polyomino packing problems) and for future Tetris-related art projects.  Since 3DAndy was nice enough to post his OpenSCAD code, it was easy to modify his pentomino-T into a tetromino-T.
STL file: http://www.geekhaus.com/makerhome/day112_tetrisT.stl
Thingiverse link: http://www.thingiverse.com/thing:212995
Settings: MakerWare .3mm/low, with 8 T's printing in 45 minutes and weighing only 16 grams. Tetris pieces is a great "stash-busting project" for those of you with lots of little scraps of filament that are too small for any normal print job.
Technical notes: Download the OpenSCAD code here or cut and paste from the below.
// mathgrrl tetrominos - example with Tetris "T"
// based directly on 3DAndy's pentominos
////////////////////////////////////////////////////////////
// PARAMETERS ////////////////////////////////////////////////////////////
//resolution
$fn=32;
//dimensions
length = 10;
radius = 1;
space = 0.2;
///////////////////////////////////////////////////////////////
// RENDERS ///////////////////////////////////////////////////////////////
//render an instance of the Tetris "T"
tetromino_T();
///////////////////////////////////////////////////////////////
// MODULES ///////////////////////////////////////////////////////////////
//define the blocks and connectors that make the Tetris "T"
module tetromino_T() {
 union() {
  // the blocks
  translate([0,0,0]) 
   myCube();
  translate([length,0,0]) 
   myCube();
  translate([2*length,0,0]) 
   myCube();
  translate([length,length,0]) 
   myCube();
  // the connectors
  translate([(0.5)*length,0,0]) 
   myConnect();
  translate([(1.5)*length,0,0]) 
   myConnect();
  translate([length,(0.5)*length,0]) 
   myConnect();
 }
}
//module for making the blocks
//eight spheres translated to the corners of the desired cube
//then convex hull of those spheres makes a rounded cube
module myCube() {
 dist = length/2-radius-space;
 hull() {
  translate([dist,dist,dist]) 
   sphere(r=radius);
  translate([-dist,dist,dist]) 
   sphere(r=radius);
  translate([dist,-dist,dist])
   sphere(r=radius);
  translate([-dist,-dist,dist]) 
   sphere(r=radius);
  translate([dist,dist,-dist])
   sphere(r=radius);
  translate([-dist,dist,-dist]) 
   sphere(r=radius);
  translate([dist,-dist,-dist]) 
   sphere(r=radius);
  translate([-dist,-dist,-dist]) 
   sphere(r=radius);
 }
}
//smaller cubes used to connect adjacent blocks
//space between blocks is small enough that no support is needed to bridge the gap
//even though these hang in the air between the blocks they connect
module myConnect() {
 translate([space+radius-length/2,space+radius-length/2,space+radius-length/2]) 
  cube([length-2*space-2*radius,length-2*space-2*radius,length-2*space-2*radius]);
}

