All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Note to myself: don't forget to update the version number in pyproject.toml and CITATION.cff
- project renamed to "
dds- semantic data folders". The "SDF" acronym is already used in the context of geometry processing (Signed Distance Function), so I went for the french translation acronym: Dossiers de Données Sémantiques.
from_cli/Gmsh_smoothing: hex-mesh smoothing with Gmshfrom_cli/inner_smoothingandfrom_cli/mixed_smoothing: hex-mesh smoothing with fprotais/hexsmoothingalgorithms/*anddata_subfolder_types/*: prospective study for a new code architecture, based on YAML files
- All code related to collections of folders. If you want to successively process several data folders, edit/duplicate
root.batch_processing()and describe the procedure
CITATION.cff: make how to cite this repo explicitfrom_cli/datafolder: print, clear or change the current data folder (mergingfrom_cli/current_datafolderandfrom_cli/clear_testdata). When clearing the data folder, the content is printed as a tree and a confirmation is asked.labelingclass has 3 new methods :labeling_stats()wrappinglabeling_statsexecutable from LIHPC-Computational-Geometry/automatic_polycube (not exposed infrom_cli/),has_valid_labeling()andnb_turning_points()AbstractDataFolderhas two new methods :get_subfolders_of_type()andget_subfolders_generated_by()from_cli/write_glb.py: export a binary glTF file by wrappingto_glTFfrom LIHPC-Computational-Geometry/automatic_polycubefrom_cli/batch_processing.pyprocesses all the CAD models with auto-tetrahedrization & execution ofautomatic_polycube,evocube(updated from commit to commit)from_cli/generate_report.pyparse generated folders to compute stats and assemble an HTML/JS report with an interactive grid, a Sankey diagram and a 3D viewer (labeling and hex-meshes)
- new in-file and in-memory structures for collections. attempt to store both sub-collections (contained by the current collection) and onward collections (output collection after a given algorithm). Define
VirtualCollection(has sub-collection) andConcreteCollection(no sub-collection, directly lists folders) from_cli/list_collectionsis nowfrom_cli/collections print- all scripts in
from_cli/use the colored Python traceback provided by Rich - captured outputs are fenced between 2 horizontal lines, printing the path to the executable
- instead of the default Python traceback, use the colored one of Rich
- instead of each
AbstractDataFolderspecializingget_file(), they only have to specializeauto_generate_missing_file()(transparent to users) from_cli/Gmshas a new optional argument-ntfor the number of threadsfrom_cli/import_MAMBOcreates collectionsMAMBO.Basic,MAMBO.Simple,MAMBO.MediumandMAMBOfrom_cli/print_mesh_statsontet_meshfolders can compute stats on either the surface or the volume mesh. The script can also be called onhex_meshfolders
from_cli/current_datafolder(now a part offrom_cli/datafolder)from_cli/clear_testdata(now a part offrom_cli/datafolder)
from_cli/global_padding: post-process a hexahedral mesh by inserting a pillowing layer on the surface (executable from fprotais/robustPolycube)from_cli/print_mesh_stats: print stats over a tetrahedral mesh (min/max/avg/sd of vertex coordinates, edge length, facet area, cell volume), computed and stored into a JSON filefrom_cli/print_history: print the date and name of algorithms applied for the input folderfrom_python/custom_ipython_prompt.sh(shell script) : launch IPython and import HexMeshWorkshop functionsfrom_python/import_Evocube_results.py: parse the output data folder of Evocube to import CAD models, tet meshes, labelings and hex meshes.
- Instead of only redirecting the standard output to text files, wrapped executables also prints them thanks to subprocess_tee
- Petty printing of the output of
from_cli/mesh_stats from_cli/recursive_enumerationis nowfrom_cli/print_children. It prints the subfolders, with their type, of the input folder. Recursivity is off by default and can be turned on with--recursive. Folder types can be filtered with the--typeargument.from_cli/automatic_polycubecan be call without the GUI- change repository structure (
from_cli/for command-line interface,from_python/for Python interface, and move own Python modules inmodules/)
from_cli/AlgoHexexports the integer grid map
Gmsh_convert_to_VTKv2()method (needed forAlgoHex) resulted in an assertion error
from_cli/evocube: generate a labeling with a genetic algorithm (executable from LIHPC-Computational-Geometry/evocube)from_cli/AlgoHex: frame-field pipeline for hex-meshing (executable from cgg-bern/AlgoHex)from_cli/labeling_painter: labeling interactive modification (executable from LIHPC-Computational-Geometry/automatic_polycube)from_cli/graphcut_labeling: interactive labeling generation with a graph-cut optimization (executable from LIHPC-Computational-Geometry/automatic_polycube)from_cli/polycube_withHexEx: hex-mesh extraction through libHexEx from a labeling (executable from fprotais/polycube_withHexEx)from_cli/robustPolycube: robust hex-mesh extraction from a labeling (executable from fprotais/robustPolycube)from_cli/marchinghex: robust hex-meshing using the Dhondt cut approach (executable from fprotais/marchinghex)from_cli/recursive_update: update filenames to the up-to-date convention
from_cli/fastbndpolycubenow has an optional argument--keep-debug-files
from_cli/naive_labeling: generate the naive labeling from a tet-mesh folder (executable from LIHPC-Computational-Geometry/automatic_polycube)from_cli/typeof: print the type of a given data folderfrom_cli/fastbndpolycube: generate a surface polycube from a labeling data folder (executable from fprotais/fastbndpolycube)from_cli/volume_labeling: compute the volume labeling (per cell facet) from the surface labeling (per surface triangle) (executable from LIHPC-Computational-Geometry/automatic_polycube)from_cli/preprocess_polycube: pre-process a tet-mesh so that the interior may not have impossible configuration for a given labeling data folder (create a new tet-mesh inside the labeling data folder, executable from fprotais/fastbndpolycube)from_cli/HexBox: Interactive tool for creating hexahedral meshes (executable from cg3hci/HexBox)from_cli/recursive_enumeration: parse all subfolders of the current data folder and print their type
from_cli/view: now has an optional "what" argument to specify the kind of visualization. On labeling data folders, you can add--what fastbndpolycubeto display the output offastbndpolycube.- Scripts that generate new files (including existing
from_cli/extract_surface,from_cli/Gmshandfrom_cli/import_step) have an optional--viewargument, to visualize the output/imported file - All scripts try to compute missing input files, if possible from existing files
settings.json(in the repo's root) : the "data_folder" entry is now inside "paths"
from_cli/Gmsh: generate a tetrahedral mesh from a step folder with Gmsh, and extract the surfacefrom_cli/extract_surface: Compute the surface (triangle) mesh in a tet-mesh folder (executable from LIHPC-Computational-Geometry/automatic_polycube)from_cli/automatic_polycube: call the main executable of LIHPC-Computational-Geometry/automatic_polycubefrom_cli/view: visualize the content of the input data folder (visualization software depends on the data folder type)
from_cli/import_MAMBO: auto-import the MAMBO dataset, already downloaded or not. Create 'MAMBO', 'MAMBO_Basic', 'MAMBO_Simple' & 'MAMBO_Medium' collections.from_cli/import_step: import a single STEP filefrom_cli/list_collections: print the name of all registered collectionsfrom_cli/current_datafolder: print the path to the configured data folder (seesettings.json)from_cli/clear_testdata: clear the content of~/testdata/from_python/custom_python_prompt.sh(shell script) : launch Python and import HexMeshWorkshop functions