Using python you can create an animation that can be played back and rendered using any render engine at a later time.
bone.rotation_euler.x = 15.0
bone.keyframe_insert('rotation_euler', frame=10)
As you want to read external data while creating your animation you might want to look at using the subprocess module to keep blender responsive.
Without wanting interactivity you could capture your data to a text file and have your script read it in to create the animation.
with open('mydata.csv') as csvfile:
inFile = csv.reader(csvfile)
for row in inFile:
bone.rotation_euler.x = row[1]
bone.rotation_euler.y = row[2]
bone.rotation_euler.z = row[3]
bone.keyframe_insert('rotation_euler', frame=row[0])