================================================================================ // File: Readme.txt // Summary: Geodesica Distribution Info. // Author: Nicholas Shea // Copyright: (c) Nicholas Shea 2005-2023 // Email: nicholas-shea@talktalk.net ================================================================================ Geodesica-OpenGL-win32-0-4-8-2b The program has been tested on Windows-10 64 bit. It should run on all 32 & 64 bit Windows from Windows-XP and later. WHAT IS GEODESICA? Geodesica is a free OpenGL(r) cross platform Geodesic modelling program that is designed to make advanced geodesic construction fun and easy to understand. The program is quite sophisticated and can generate dual space frames in Quad-Edge mode. Struts and angles can be measured interactively with labels identifying the respective components. Geodesica can distribute vertices over ellipsoidal envelopes using a pseudo- magnetic field where field strength is governed by a bezier curve. Geodesica was inspired by the work of Buckminster Fuller and written as my own accompaniment to 'Geodesic Math and How To Use It' by Hugh Kenner. My intention is to make Geodesica a quality product that implements sound numeric methods, with a consistent interface and clear documentation. I hope one day to build a life size dome using Geodesica. Until that time the program remains untested in real world applications. Geodesica is programmed in C++ using a modified version of the WildMagic(r) 3 graphics engine; the UI was built with the FLTK toolkit. Geodesica runs on UNIX(r)/Linux(r) (X11), Microsoft(r) Windows(r). MacOS(r) X is planned. Both Linux and Windows versions are 32 bit. WHAT IS GEODESICA-SFX Geodesica-SFX is the commercial fork of Geodesica but is currently without a website. Geodesica-SFX is vastly superior to the open source version. INSTALLING AND RUNNING GEODESICA UNDER MICROSOFT WINDOWS Unarchive the zip to your chosen directory. Geodesica does not touch the Windows registry. The expanded folder should look something like this: Geodesica Data [folder] Export-Tests [folder] ScreenShots [folder] UnitTest-Output [folder] Geodesica.exe [program binary] Do not rename any of the folders or mix old Data folders with new ones. IMPORTANT: If using a version of Windows later than XP please run Geodesica in 'Compatability Mode' for Windows XP, Service pack 3. If Geodesica does not run on your machine an e-mail would be appreciated. INSTALLING AND RUNNING GEODESICA UNDER UNIX Unarchive the zip to your chosen directory. Please start the program from a console/shell so that the program can find its Data directory. Eg > ./Geodesica Texture Loading --------------- Don't forget the period if the current working directory is not part of your PATH variable. Otherwise, letters on billboards will be invisible and all you will see are black rectangles. The program will warn you if the Data directory can't be found or if a billboard texture failed to load. POV-RAY To install the TS_Macros for POV-Ray, so that you may render the examples and your own INC file output, please read the file: Data/POV-Ray/Installing.txt QUICK START MOUSE LEFT MOUSE BUTTON ----------------- Select, Analyse or Modify, depending on the Pick mode. Set the pick mode on the toolbar. There are three tabs corresponding to each mode. Each mode has a sub-mode. For example, on the 'Select' tab there are buttons for single item selection and group selection. The other buttons on the 'Select' tab determine what gets picked, i.e., Vetices, Edges, Cells, etc. Measured dimensions are displayed in the log window. Click an object to select, click again to deselect. Passive highlighting can be turned off in the Select menu. MIDDLE MOUSE BUTTON ------------------- Click and drag for Trackball rotation. RIGHT MOUSE BUTTON ------------------ Click in a viewport to change the camera. NOTE: There are 36 different viewport configurations ranging from a single port up to 6. The more viewports that are open, the slower the app will run. Select a viewport configuration from the View menu. All data pertaining to a camera can be changed in the Navigator window. Choose menu Window->Navigator. Expand the Navigator window by clicking on the small arrows at the bottom left. There are three levels of expansion, for Location, Orientation and Fustrums. GENERAL OVERVIEW 1. MODES Geodesica has two main modes: PPT and Quad-Edge. These are selected from the 'MODE' menu at the far left of the menubar. PPT Mode -------- Explores the symmetry of a sphere and shows how the three great circle systems relate to the underlying geometry. Cells are separate and distinct (no underlying mesh). The Modify tab on the Toolbar has two options for changing the geometry 1. Split. 2. Stellate. These work in the following way: 1. Select the cells you wish to modify. 2. Right click in the morph field and drag the mouse left or right. NOTE: to select a cell, the Pick mode must be 'Cells' on the 'Select' tab, and cells must be visible. Set cell visibility in the 'Attributes' window. Quad-Edge Mode -------------- This is the modelling mode and the ONLY mode intended for actual dome construction in real-world applications. The Modify tab on the Toolbar has eight options for changing the geometry of a primal lattice: 1. Make Edge. 2. Kill Edge. 3. Kill Vertex. 4. Collapse Edge. 5. Divide Edge. 6. Truncate Vertex. 7. Split & Bevel. 8. Stellate. These are documented at: http://myweb.tiscali.co.uk/oaktree/geodesica/index.htm The modelling tools have not been stress tested. If the program detects an illegal operation, it will warn the user. IMPORTANT: If you see a Topology Warning message, take heed. Random deletion tests succeed in removing vertices in 12V spheres until only a few remain, and the program correctly handles each case. However, the program will eventually crash if the sphere isn't closed. This will happen if you delete a vertex or edge that 'splits' the sphere in half, or if you create an "island" of edges that are not connected to the surrounding manifold. In this instance the lattice can no longer be traversed by the Quad-Edge operators. Checks have been put in place to try and ensure this does not happen. But if the sphere fails to satisfy Euler's formula: V - E + F = 2 a warning dialogue will appear, so hopefully the situation can be remedied before crashing. In most cases, Geodesica will label the offending vertex with appropriate instructions. You can then use the modelling tools to rememedy the situation. If all else fails, just rebuid the sphere by changing the frequency. NOTE: Editing the model when 'Generate Space Frame' is ON may be slow on legacy CPU's. ------------------------------------------------------------------------- 2. EXPORT Primal and Dual export formats are: OBJ POV-Ray VRML V1.0 ascii DXF ascii Only visible cells are exported. 2a. DXF ascii export notes. Cells are trifanned and grouped as layers with the following options: 1. Layer cells by parent group. 2. Layer cells by parent lattice. 3. Layer cells individually. User is informed if the layers required exceed 20. They usually do. When cells are layered individually... The cell trifan layer prefix is 'CT_' followed by the cell count Cell skeletons are always layered per cell. The cell skeleton layer prefix is 'CS_' followed by the cell count. Cell spaceframe struts are always layered per cell. A spaceframe strut layer prefix is 'SS_' followed by the cell count. Only visible cells are exported. Currently there is only support for creating cell trifans with DXF. Whilst this increases the triangle count for coplanar cells with 3 or 4 vertices, subdividing a geodesic cell around its centroid is more useful than using an arbitrary perimeter vertex. As trifans are created during DXF export, user must ensure that cell perimeters form 'convex' polygons as in Fig A. A B _____ ____ / \ | | / \ | | \ / / __| \_____/ / |__ /_______| Trifans are formed around the cell centroid, so the cell in Fig B. will not export as a trifan. The DXF file currently omits HEADER, TABLES, BLOCKS, and LAYERS. According to the AutoCAD DXF reference manual, the following is allowed: The entire HEADER section can be omitted if header variables are not set. The TABLES section can be omitted if nothing in it is required. The BLOCKS section can be omitted if no block definitions are used. Layers can be referenced within the ENTITIES section. ------------------------------------------------------------------------- 3. SELECTIONS The menus 'Select->All' and 'Select->None' operate according to the current pick mode. If the 'Vertices' button is on, then all vertices get selected / deselected. If the 'Cells' button is on, then all cells get selected / deselected etc. The menus 'Hide selection' and show 'All' target cells only. When in Quad Edge mode, the menus Select->All and Select->None only target elements within a single lattice - either primal or dual. The target lattice is set in the Attributes window. If the PRIMAL button is down, the Primal lattice becomes the target and vice versa. ------------------------------------------------------------------------- 4. PICKING You cannot pick invisible elements. So to pick vertices, for example, the 'Pick Vertices' button must be ON in the 'Select' tab, and vertices must be visible in the 'Attributes' window. Use toggle buttons 'P' and 'D' on toolbar to set the pick target (Primal, Dual or both). When you change to the MODIFY tab, the pick target is the Primal only. A Picking Example. The spherical coordinates of a picked vertex are displayed in the VERTEX EDITOR on the toolbar. You can modify Phi, Theta or Radius by editing the field(s) and pressing return. This works for multiple vertex selections. For example, you can create an egg shape by setting the PRIMAL ENVELOPE to an 'Ellipse profile' with an expansion in Y of 1.5. You can then switch to FRONT view by right clicking in the OpenGL view and choosing the front camera. Use the AREA-SELECT tool on the toolbar to select all PRIMAL vertices below Theta = 90 (negative Y values). Then enter 1.0 in Radius field of the VERTEX EDITOR and press return. Be sure to use the menu Select->None afterwards. If the DUAL ENVELOPE 'Project' option is OFF, the dual will follow the same egg profile as the PRIMAL. When picking elements it is preferable to set one PICK TARGET only (Primal or Dual, but not both), otherwise confusion may result using high frequencies: you might think you've picked an element on the PRIMAL hull, when in fact you've picked the DUAL. Note: the hierarchy of the picked element is also displayed on the VERTEX EDITOR. Be careful picking Vertices or Edges in QuadEdge mode when Facets are invisible; if the pick ray does not find an element on the front of the sphere, it will travel between Edges and pick elements on the rear interior of the sphere. This is a feature, not a bug. ------------------------------------------------------------------------- 5. MEASURING Whilst cells can be measured in PPT mode, actual dimensions and analyis of a dome should only be carried out when in Quad-Edge mode as this is the most accurate. You can log cell dimensions / angles strut dimensions / axial angles / dihedral angles etc. Please note that results have not been extensively verified but match data in 'Geodesic Math and How to Use It' by Hugh Kenner. When measuring angles/lengths at a vertex, please make sure that Vertices are visible. The button for the corresponding lattice must be down in the Attributes window. You cannot pick an invisible vertex. This helps if you only want to select Dual vertices or vice-versa. ------------------------------------------------------------------------- 6. ATTRIBUTES Attributes are not consistently applied across the three different modes. Colours and morphs may be applied to single cells or cell groups. Group attributes in PPT modes are persistent when a sphere is re-built but individual cell attributes are wiped. Changes in applied colours are not visible until objects are de-selected. The application tries to follow the convention of "Select then effect" but this behaviour needs refining. Example To colour edges, choose the Group Select tool and click on an edge. The edges turn red to show they are selected. Change their colour using the colour-well in the Attributes window. Click the edges again to delesect them, or choose 'Select->None'. Drawing Round points If you have problems drawing round points with your graphics card (The selected vertex goes black, for example), then please un-check this option. ------------------------------------------------------------------------- 7. ACCURACY The program appears to be accurate in PPT and Quad Edge modes but has not been tested in a real world application. Quad-Edge mode is the only mode intended for construction. Please see the page 'Verifying Output' on the website for details. ------------------------------------------------------------------------- 8. THETA DISTRIBUTION CURVE Changing my code to use a scene graph has slowed this down. Nevertheless, it is still usable and makes an interesting experiment on distributing vertices on ellipsoidal envelopes when standard Root-E correction fails to give desired results. ------------------------------------------------------------------------- 9. VERIFYING OUTPUT Please consult the file 'Verifying-Output.txt' which describes how to use the measuring tools, how to change envelope profiles, and how to log dome data to the Log Window. The principal source for verifying output was the classic publication 'GEODESIC MATH AND HOW TO USE IT' By Hugh Kenner. ------------------------------------------------------------------------- DEBUG BUILDS Debug builds have three additional menus: Trace, TraceFlow and UnitTest. Be aware that Trace levels greater than 1 will spew lines of feedback to the console and slow down performance. WARNING: it is advised to turn off all Trace and TraceFlow functions from the menu. These functions output to the console and the file 'TraceLog.txt' which can become inordinately large. TraceFlow for TsApplication is enabled by default to catch any possible initialization problems. Generally, you should only turn on Trace/TraceFlow functions if you encounter a bug. Turn off the TraceFlow for TsApplication once the program has launched successfully. Any initialisation problems may be e-mailed to: bishopbarnabee@gmail.com If using a debug build, please attach the file TraceLog.txt so the problem can be isolated. LEAKS Mostly fixed. A few remain in the Unit Tests when writing to OBJ files. AppLog reports not all objects being deleted before post-main termination but the memory appears to be reclaimed. LICENSING Geodesica is open source but help cannot be provided with compilation as it links to a modified version of WildMagic 3 ON-LINE DOCUMENTATION This can be downloaded from Geodesica's SourceForge project page. SUPPORT Please note: I cannot respond to requests for help. For queries, consult the documentation (a 40 MB download, available on the SourceForge project page). TRADEMARKS Microsoft and Windows are registered trademarks of Microsoft Corporation. UNIX is a registered trademark of the X/Open Group, Inc. OpenGL is a registered trademark of Silicon Graphics, Inc. MacOS is a registered trademark of Apple Computers, Inc. COPYRIGHT Geodesica is copyright 2005-2015 by Nicholas Shea CREDITS WildMagic3 library by David Eberly: www.geometrictools.com FLTK-1.1.9 (Fast Light Toolkit) by Bill Spitzak Michael Sweet and others: www.fltk.org The program uses an Fl_Table widget by Greg Ercolano (erco@seris.com), Debugging and Trace classes are based on XTrace by Jesse Jones from his Whisper framework. TsNumbers is a paired down version of his XNumbers. TsQELattice is based on an original Quad Edge implementation by Guibas and Stolfi and code written by Paul Heckbert and Dani Lischinski in "Graphics Gems IV", Academic Press, 1994. A big thanks to all of the above. DISCLAIMER OF WARRANTY AND LIMITATION OF LIABILITY. Geodesica is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Balazar Geodesics shall not be liable for any loss of profits, loss of business, loss of information, personal injury, indirect, special, incidental or consequential damages, expressly or not set forth herein incurred before, during or after the use of Geodesica. Any liability of Balazar Geodesics will be limited exclusively to bug fixes or program replacement. Except as set forth above, no other warranties, either express or implied, including the warranties or conditions of merchantability and fitness for a particular purpose are applicable to this product or any of the other products which are created by Balazar Geodesics. DONATIONS If you find Geodesica useful please consider making a donation via PayPal to help support future development: PayPal id: nicholas-shea@talktalk.net Name: Nicholas Shea