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_smoothing
andfrom_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_datafolder
andfrom_cli/clear_testdata
). When clearing the data folder, the content is printed as a tree and a confirmation is asked.labeling
class has 3 new methods :labeling_stats()
wrappinglabeling_stats
executable from LIHPC-Computational-Geometry/automatic_polycube (not exposed infrom_cli/
),has_valid_labeling()
andnb_turning_points()
AbstractDataFolder
has two new methods :get_subfolders_of_type()
andget_subfolders_generated_by()
from_cli/write_glb.py
: export a binary glTF file by wrappingto_glTF
from LIHPC-Computational-Geometry/automatic_polycubefrom_cli/batch_processing.py
processes all the CAD models with auto-tetrahedrization & execution ofautomatic_polycube
,evocube
(updated from commit to commit)from_cli/generate_report.py
parse 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_collections
is 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
AbstractDataFolder
specializingget_file()
, they only have to specializeauto_generate_missing_file()
(transparent to users) from_cli/Gmsh
as a new optional argument-nt
for the number of threadsfrom_cli/import_MAMBO
creates collectionsMAMBO.Basic
,MAMBO.Simple
,MAMBO.Medium
andMAMBO
from_cli/print_mesh_stats
ontet_mesh
folders can compute stats on either the surface or the volume mesh. The script can also be called onhex_mesh
folders
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_enumeration
is 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--type
argument.from_cli/automatic_polycube
can 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/AlgoHex
exports 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/fastbndpolycube
now 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 fastbndpolycube
to display the output offastbndpolycube
.- Scripts that generate new files (including existing
from_cli/extract_surface
,from_cli/Gmsh
andfrom_cli/import_step
) have an optional--view
argument, 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