What is gds2pov?
GDS2POV is a program to take a GDS2 layout file and output a POV-Ray scene
description file of the GDS2 data. This allows the creation of attractive 3D pictures of a layout.
Look at an example (click to enlarge):
POV-Ray is a completely free, cross platform ray tracer. It can be obtained
Also included are the incomplete programs gdsoglviewer and gds2svg.
Work in progress
I am currently working on a new version of gds2pov. It's a big tidy up of the code (so far I've removed almost 1000 lines of code, or about 10% of the total, with no change in functionality) and it's also going to be a whole lot easier to use. Don't hold your breath though :)
New release 20080229
- Numerous fixes for compiling with gcc 4.3
- New feature - automatic generation of a skeleton process file based on an input gds2 file.
New release 20070827
- Minor fix for building on multilib Linux x86_64 machines. Thanks to Chitlesh Goorah.
New release 20070815
- Some build fixes for both Unix and Win32.
- Binary release for Windows...
New release 20070813
- Build chain has been changed from autotools to cmake which should make life much easier all round and be more robust.
- Thanks to Mark Wilmott the top level cell is correctly placed within the canvas when using gds2svg.
Fedora Packages (2007/08/09)
- Thanks to Chitlesh Goorah, gds2pov is now available for Fedora users natively through yum on FC6 and F-7 on x86, x86_64, PPC and PPC64 (F-7 onwards).
gds2pov is available to download as source code. It should compile on just about anything, although there may be problems with OpenGL support on platforms other than Windows and Linux.
Old versions are still available, should you want them for any reason.
This code is licensed under the GNU GPL v2.
Please forgive - these images have been resized and saved as jpg to save on file size. It hasn't done them much good!
gds2pov was written by Roger Light. Questions, bug reports, suggestions or requests for new features (especially if they concern the incomplete support for the GDS2 format) are very welcome.
I am also very interested in seeing any pretty pictures made with gds2pov!
Contact me on roger_atchoo_org. Replace the _ with @ and . respectively.
- Layers with height=0 were not being processed, when it should have been layers with thickness=0. Thanks to Matt Hopcroft for spotting this one.
- Build process fixes.
- Memory stability fixes.
- Fixed compile errors on Solaris due to missing functions/types.
- Fixed compile errors on msys due to u_int16_t being defined as uint16_t.
These changes thanks to Arun Persaud:
- Added simple support for Boxes (they are treated as Boundaries)
- gdsoglviewer uses the config.txt settings to set the initial position.
- gdsoglviewer displays a camera and lookat position which can be used in gds2pov.
- Zero width paths no longer prevent the rest of the GDS2 file being parsed.
- An error in the type of the STYPTABLE record was fixed.
These changes suggested by Frederic Pecourt:
- Added the option of using a camera include file in gds2pov rather than
calculating the camera position inside the main pov file.
- Fixed problems with integer sizes on 64 bit processors leading to boundary calculation problems. Spotted by Markus Dorn.
- Added a snapshot which includes the new gds2svg ("works for me", but may not work for you - give it a try)
- Fixed gds2pov -b option which wasn't producing any output (since 20050521)
- Added gds2svg
- Fixed some other minor problems
- Changed to using autoconf/automake. Source now included.
- Experimental gdsoglviewer included.
- Fixed occasional problem with invalid characters being printed in layer names. Thanks to Scott Lin.
- Fixed boundary calculation when an SREF only contained other SREFs. Thanks to Scott Lin.
- SREF boundaries are now output when the -v option is given.
- Fixed texture definition problem under Windows.
- Fixed texture definition when texture is a metal.
- Fixed command line parsing problem. Thanks to S. Lin for spotting the problem.
- Added option to specify the top cell name as suggested by Markus Dorn.
- Added option to output a bounding box the same size and shape as the layout instead of the layout. This renders almost instantaneously so can be used to place the camera more effectively.
- Empty cells no longer break the boundary detection.
- Fixed bug causing the wrong cell to be selected in boundary calculation which was leading to crashes in certain situations (Guenter Grau).
- Added verbose output option for helping debug problems with gds2 files.
- Default font used is crystal.ttf (supplied with POV-Ray) and font is definable in config.txt
- Invalid characters in structure names are replaced with _. Thanks to Guenter Grau for highlighting this problem.
- Support for offset and variable paths added. Octagonal paths are treated as offset paths.
- XY records for unsupported elements (BOX, NODE) will now be parsed completely so the whole file can be parsed.
- If Datatype is not specified in a layer definition in the process file, the layer definition will be used for all datatypes in that layer. Thanks to Guenter Grau for this suggestion.