Package: pypos3d
This file is the README of the library pypos3d.1) INTRODUCTION:This library is a port of the old DATA3D library of the OpenSource Pojamas project.
I own both of them.pypos3d aims to replace Pojamas.DATA3D library with a very close interface.
Application ePOSER (in Eclipse RCP) is replaced by a new MMI concept based on
LibreOffice/Python.This Python library intends to give high level operations for some 3D files:WaveFront Files (.OBJ and compressed .obz [gziped]):Read / WriteGroups manupilation : add, remove, optimization, fusionUV texture maps creation and modificationHigh level method:
Plane Split, Plane Slice, Remesh, Hole filling, untriangularizationAll Wavefront functions (classes) are in the pypos3d.wftk packagePoser Files (.PZ3, .CR2, .PZZ, .CRZ, .PP2, .PPZ, .HR2, .HRZ):Read / WriteActors, Props, Cameras, ... manipulations: add, remove, renameMorph report and morph report on alternate geometriesCleaningCharacter creationAll Poser functions (classes) are in the pypos3d.pftk packagesInitialy, Pojamas project was a Eclipse RCP application based on a SWT/Java3D MMI.
For maintenance reason, this RCP application will be discontinued and shall be replaced
by another one (cf. chapter 4 'GUI').#2) INSTALLATION:##2.1) Library Installation:
The library shall be installed with pip:> python3 -m pip --user pypos3d##2.2) GUI Install:First, download the relevant GUI distribution package from Source Forge:https://sourceforge.net/projects/pojamas/files/Filename : PyPos3DLO-X.Y.Z.zip
Unzip it in your usual work directory (anywhere, in fact)OnLinux(and probably Mac - To Be Confirmed):
Install first the library and its dependencies
Launch the GUI installer: PyPos3D-App-Installer.ods
Clic onCheckinstall first and then onInstallClose LibreOfficeThe installation is finished, you can use the PyPos3DLO.ods computation sheetFor Debian 11, you could have to add support of python to LibreOffice with the following package:
apt-get install libreoffice-script-provider-pythonOnWindows(and for pure LibreOffice Installation on Linux)
You will need to extend the internal Python installation with the dependencies.
The PyPos3dLO installer will help you.Launch the GUI installer : PyPos3D-App-Installer.ods
Clic onCheckinstall first and then onInstallClose LibreOfficeThe installation is finished, you can use the PyPos3DLO.ods sheet as an algorithm launcher.
As of May-2021, alimitationhas appeared on Windows 10 / LibreOffice both 6.4 and >7 using Python 3.7
pip 21 is  does not run anymore under LibreOffice
Workaround: Install Python 3.7 on Windows and install pypos3dv manualyManual Install:
Check which version is used (or brought) by LibreOffice
First, try to Install the 3D viewer (if it works, it will bring all dependencies):> python3 -m pip --user pypos3dvIn case of pypos3dv trouble, Install theonlylibrary:> python3 -m pip --user pypos3dFrom the previously unzipped GUI package:
copy pypos3dapp.py and pyposinstaller.py files in your LibreOffice Python's scripts directory (create it if needed)
On Linux:   $HOME/.config/libreoffice/4/user/Scripts/python/
On Windows: $HOME/.config/libreoffice/4/user/Scripts/python/That's all, you can use the PyPos3DLO.ods computation sheet##2.3) 3D OpenGL Viewer Install:
The Viewer shall be installed with pip:> python3 -m pip --user pypos3dvAccording to your system install, you may have to install some libraries:
Pillow (>= 6.2)
glfw (>=3)On CentOS 7:> yum install python36.pillow glfwOn Debian 10 (i386)
glfw can't find the glfw3 library, because of the installation pathapt-get install libglfw3export PYGLFW_LIBRARY=/lib/i386-linux-gnu/libglfw.so.3#3) DESIGN:
The pypos3d Library has the following structure:langutil: A personal generic package for some utilitiespypos3d.wftk: WaveFront manipulation package
The main classes are pypos3d.wftk.WaveGeom and pypos3d.wftk.GeomGroup.
Refer to WaveGeom documention for informationpypos3d.pftk: Poser files manipulation packagepypos3d.propslim: Decimation function (port of Michael Garland "SlimKit Surface Modeling Tools")Dependencies:numpyscipyxlrdThe pypod3dv Viewer package has a flat structure:Modules: Window.py and Renderable.pyLauncher: pypos3dv (executesmain.py)Dependencies:pypos3dPillowPyOpenGLPyGLMGLFW#4) TESTS:
This library is tested with unitest with a target coverage rate over 90%.
Unit tests are delivered in another package: pypos3dtu
Coding rules are based on CNES (RNC-CNES-Q-HB-80-535) - CNES is the French National Space Agencyhttps://www.cnes.fr-Installation and commissionning tests are performed on:CentOS 8, 7           Python 3.6   LibreOffice 6.4Fedora >34            Python 3.10  LibreOffice 7.2Debian 10 (i386)      Python 3.7   LibreOffice 7.0debian 11             Python 3.9   LibreOffice 7.1Microsoft Windows 10  Python 3.7   LibreOffice 7.0#5) GUI:
As mentioned previously, the former Pojamas application was an Eclipse RCP (obsolete RCP3).
In the future, a WxPython application is forseen.
For tests purpose, a LibreOffice calc based GUI is proposed.
Refer to: Pojamas for download
The GUI requires LibreOffice >= 6.4 on Windows and LibreOffice >= 6.3 on Linux (CentOS > 7)This new version of the library (>0.4) provides a simple 3d Viewer.#6) LIMITATIONS:
pypos3d read/write operations have been validated on Poser7, Poser9 and Poser11.
Nevertheless, some new features in Poser11 may generate mis-interpretation for morphs.#LICENCE:
This library is delivered under the BSD license.KR, Olivier#Dev Notes
Add a popdown menu to select algorithms and highlight params : DONEAdd a View on Poser File
Extract WFMat from Poser FileOptionsAdd a View in Edit SheetFile (scene, character(s), prop(s))CharacterPropActorChannelAdd a Menu to the viewerHide/Show parts (groups)Move partsRotate partsMigration Procedure : DONEMecanical Character Building : DONE!!!
For actors :Add 'moveto:FACE' for translation : DONEAdd 'puton:FACE' for translation/rotation
For geom :Add translation, rotations as for actors : DONESupport for Poser12 : DONE