Complete S3O to OBJ and OBJ to S3O converter.
Needs python 2.x to run.
Billion thanks to Muon for his wonderfule S3O library!
Converts OBJ files to S3O files, while retaining pieces and piece hierarchies.

Instructions and notes:
Launch by double clicking obj2s3o.py!
1. Converting S3O to OBJ:
Open an s3o file, and the obj file will be saved with the same name and an .obj extension. The name of each object in the .obj file will reflect the naming and pieces of the s3o file. All s3o data is retained, and is listed as a series of parameters in the object's name.
Example:
base,ox=-0.00,oy=0.00,oz=0.00,p=,mx=-0.00,my=4.00,mz=0.00,r=17.50,h=21.00,t1=tex1.png,t2=tex2.png
ALL s3o info is retained, including piece hierarchy, piece origins, smoothing groups, vertex normals, and even degenerate pieces with no geometry used as emit points and vectors. These emit pieces will be shown as triangles with their correct vertex ordering.
2. Converting OBJ to S3O:
The opened .obj file will be converted into s3o. If the piece names contain the information as specified in the above example, the entire model hierarchy will be correctly converted. If it doesnt, then the program will convert each object as a child piece of an empty base object
Download here: https://github.com/beyond-all-reason/OBJ2S3O
Why is this all good for you?
It creates closed surfaces editable in wings3d.
It retains piece heirarchy and piece origins both ways.
It optimizes s3o vertex counts and performs vertex cache optimization.
Allows normals-correct importing and exporting
Allows graphical editing of directed emit points
For an empty emit piece, make a triangle, its first vertex will be the emit pos with a direction of (0,0,1), and name the piece like this: 'flare,e=0'.
For an emit piece with a position and a custom direction, make a triangle object; its first vertex will be the emit position, and the vector pointing from first vertex to second vertex will be the emit direction. name the piece like this: 'wake,e=1'
Calculates proper smoothing groups for .obj files.
And as a bonus, you can linear transform the UV space of any .obj file upon importing! (yes this includes flipping the UVs, in which case you want to specify (1,0,-1,1)
Edit: edited for completeness
Edit2: New download link, windows EXE