Here's how you can do it with arcpy geometries (10.1+):
>>> fc = "grid" # input feature layer
... sr = arcpy.Describe(fc).spatialReference # spatial ref
... points = []
... lines = []
... polys = []
... fields = ["SHAPE@","var1","var2","var3","var4","var5","var6","var7","var8"] # geometry plus 8 variables
... maxDist = 5 # value multiplier
... with arcpy.da.SearchCursor(fc,fields,spatial_reference=sr) as cursor: # loop through features
... for row in cursor:
... centre = row[0].centroid # centre point
... newPolyPoints = []
... for i in range(1,9): # loop through variables
... x = centre.X + math.cos(math.radians(i*45))*row*maxDist # x offset
... y = centre.Y + math.sin(math.radians(i*45))*row*maxDist # y offset
... newPoint = arcpy.PointGeometry(arcpy.Point(x,y),sr) # create point geometry
... points.append(newPoint)
... newLine = arcpy.Polyline(arcpy.Array([centre,newPoint.centroid]),sr) # make ray lines
... lines.append(newLine)
... newPolyPoints.append(newPoint.centroid)
... newPoly = arcpy.Polygon(arcpy.Array(newPolyPoints),sr) # make snowflake polygon
... polys.append(newPoly)
... arcpy.CopyFeatures_management(points,r'in_memory\points') # write points
... arcpy.CopyFeatures_management(lines,r'in_memory\lines') # write lines
... arcpy.CopyFeatures_management(polys,r'in_memory\polys') # write polygons