FlyByGen is a tool which allows the creation of various in space Fly-By scenarios and according image data. The setup is intended to be fully modular and enable the easy generation of big datasets.
The pipeline consists of three parts
- Image Generator
- Dataset Handler
- Post-Processor
The default image generator utilises blender as graphics generator and the post-processor utilises python libraries as default. Multiple modules are found in src/blender/ and src/postProcessing. Each of these modules contributes almost independently to the final result and can be exchanged as wanted following some simple guidelines.
Currently, the pipeline provides the following functionalities:
- Scene generation
- Random Nucleus Generation
- Object inclusion from 3D model (.obj or .stl)
- Dust Jet Geneartion
- Simple Fly By and Object animation
- Raw data set generation
- Noise generation
- Ground Trush generation for neural network training
To run the pipeline successfully you need to adapt certain paths in the OS (Windows/Linux) corresponding src/config/paths.json.
Here you need to make sure the following paths are correct:
Your project directory, where the FlyByGen repository is included
"project_directory": "/home/user/FlyByGen",
Your blender installation path
"blender_path": "blender",
Your python environment for post processing (preferred Conda)
"post_controller_python": "/home/user/anaconda3/envs/FlyByGen/bin/python",
Blender comes with a python installation. Ideally this is used directly, so no further python installations are required. If Blender is not being used, then a separate python installation is required and anaconda environments are recommended. In any case, the following libraries need to be installed within the respective Python environment:
- numpy: pip install numpy
- PIL
- cv2
Blender version used for development is 3.6. Install it in the default directory and set the path correctly in src/config/paths.json. Use of other blender versions should not cause any issues, but no tests have been performed. Please report if you managed to run other versions as well to state support here. You will also need to add the pipeline base file to the lib folder. The file can be found via: https://tartuulikool-my.sharepoint.com/:u:/g/personal/dengel_ut_ee/EQovUJjKN21Aoh1pVxAL4-MB6Z35rzGY1UYr1f5JuNgChA?e=IqjIAW. An automatic setup is yet to be added
The documentation requirements should be automatically installed with the make.bat / makefile execution. However to update the documentation of this project, there may be some additional software requirements as listed:
- sphinx: pip install sphinx
- sphinx_design: pip install sphinx_design
- furo for html: pip install furo
- myst-parser for md use: pip install myst-parser
Run
python .\FlyByGen.py
To run only the graphic generation of post processing adapt .\FlyByGen.py accordingly.
Integration of own modules is done to blenderModules.json or postModules.json accordingly.
Additionally the pipeline allows to be stopped in any part.
For example the pipeline can be run only with the first modules in the according .json files.
Then for example the .blend files of blender can be adapted and subsequently the pipeline can be continued by integrating the left modules.
The documentation for this project is created with sphinx and can be found in the docs folder. It is planned to be hosted on github pages, but for now the simplest way is to clone the repository and open /docs/build/html/index.html
Adapt make.bat for windows systems or makefile for linux based systems to use the right sphinx build options when blender is part of the toolchain or not. If blender is used in the toolchain, adapt the path in line 8 of the makefile and make.bat to suit your blender path.
This tool was developed by Ric Dengel and Mihkel Pajusalu within the scope of Ric Denge's PhD and the Comet-Interceptor OPIC projects.
Ric Dengel's work was co-sponsored through activity 4000141651 within the European Space Agency OSIP program. Mihkel Pajusalu's work was financed by Estonian Research Council project RVTT7 "ESA Science Consortium of Estonia"
This work also would not have been possible without the Blender open source community.
The GNU General Public License version 3-0 (GPLv3) applies to this project as in https://www.gnu.org/licenses/gpl-3.0.en.html.
- Import option to load extra materials and other files into the blender base file.
- Extension of animation capabilities
- Extension of dust system to full particle system to enable a coma tail
- Integration of useful tool such as Orekit, DAMIT,
TBD


