Skip to content

Releases: Any2HRTF/PPM

PyBezierPPM 3.0

21 Feb 14:41
a10a438
Compare
Choose a tag to compare
pybezierppm-3.0

Update README.md

pybezierppm-3.0rc3

12 Nov 15:49
Compare
Choose a tag to compare
pybezierppm-3.0rc3 Pre-release
Pre-release

pinna regions now anatomically correct

Thanks Kathi!

Full Changelog: pybezierppm-3.0rc2...pybezierppm-3.0rc3

pybezierppm-3.0rc2

16 Sep 12:26
f58062b
Compare
Choose a tag to compare
pybezierppm-3.0rc2 Pre-release
Pre-release
Update core_class.py

pybezierppm-3.0rc1

14 Jun 09:08
409d091
Compare
Choose a tag to compare
pybezierppm-3.0rc1 Pre-release
Pre-release

pybezierppm-3.0b4

29 Apr 09:27
Compare
Choose a tag to compare
pybezierppm-3.0b4 Pre-release
Pre-release

What's Changed

Other Changes

Full Changelog: pybezierppm-2.0rc4...pybezierppm-3.0b4

BezierPPM 3.0

26 Mar 17:29
Compare
Choose a tag to compare

PyBezierPPM 2.0

07 Feb 12:44
3166dd0
Compare
Choose a tag to compare

Bezier PPM 2.0

09 Aug 12:48
8246b23
Compare
Choose a tag to compare
bezier-ppm-2.0

Update Blender Add-on.yaml

Matlab_1.6.0

30 May 09:06
Compare
Choose a tag to compare

Parametric pinna model (PPM) - MATLAB interface

Author: Florian Pausch (2023)

Versions and contributors:
0.8 and above: Florian Pausch (2023)
0.7 and below: Oscar Jones, Mantas Tamulionis (2021)

Current version:
1.6.0 (release)

Added README.md, CITATION.cff, and EUPL-1.2 license.

OVERVIEW

  • demo_ppm
    MATLAB script to demonstrate the functionality of the interface to the PPM (single-parameter and multiple-parameter input), including bi-directional communication with Blender via Python API

  • Main functions:

  1. ppm_initialize()

    • Initialize the PPM structure array
    • Optionally clean up previous data in result directory
  2. ppm_get_values()

    • Obtain the parameter values from the PPM contained in the Blender file to be modified, as specified in the PPM structure array
    • Return a subset of parameter values as per 'type', 'name', 'axis'
    • Save the comma-separated parameter set as txt file
    • Optionally render the PPM as point cloud (ply file) or mesh (stl file)
  3. ppm_set_values()
    Set the parameter values of the PPM contained in the Blender file to be modified

    • Independently select and modify parameters via 'type'/'name'/'axis'
    • Use cell-array input to select and modify multiple parameters simultaneously
    • Specify the rotation of PPM parameters via Euler angles
    • itr=1: Change the selected parameter values only once as per ppm.modify.instruction_mode
    • itr>1: Change itr neigboring values in steps of range/itr in a range of (+/- range/2) symmetric around val
    • sample_start_idx: File-name index. If itr>1 the exported or rendered files start at this index, which is incremented
    • Export the PPM as point cloud (ply file)
    • Export the PPM as mesh (stl file)
    • Render the PPM as image (png image)
    • Render rendered image's depth information as png and exr images (with control of depth-map range)
    • Manually set the camera pose when rendering the PPM
    • Automatically set the camera rotation to point at a specified reference point cam_loc_ref before rendering
  4. ppm_evaluate()
    Evaluate the PPM mesh against a target mesh in terms of the minimum pointwise distance for two directions

    • Only for single-parameter input in ppm_set_values(): Plot parameter value per iteration (ppm.modify.itr)
    • Plot modeled point cloud vs. target point cloud
    • Plot histogram of minimum pointwise distance for direction 1 (P -> PPM, Q -> Target)
    • If ppm.modify.itr > 1 the parameter value is set to the one resulting in the minimum mean minimum pointwise distance (for the direction with the higher supremum) across iterations
  • ppm_evaluate_multiple_meshes
    MATLAB script to compare multiple PPM meshes to the corresponding target meshes and evaluate their geometric fit in terms of the Hausdorff distance

  • ppm_test
    MATLAB script for comprehensive tests of ppm_initialize(), ppm_get_values(), ppm_set_values() (single-parameter and multiple-parameter inputs), and ppm_evaluate()

COMPATIBILITY

  • Versions 1.1.0 and above only work with the Blender model ARI_PPM_v1 (armature and object definitions), see config/parameter_defaults_v1.mat and config/shape_key_limits_v1.mat.
  • Version 1.6.0 requires the current Python scripts python/get_values_and_export_mesh_v1_6_0.py and python/set_values_and_export_mesh_v1_6_0.py

RELEASE NOTES

  • python/get_values_and_export_mesh_v1_6_0.py:

    • BUILD: renamed from python/get_values_and_export_mesh_v1_5_0.py (now obsolete)
    • DOCS: changed function description
  • python/set_values_and_export_mesh_v1_6_0.py:

    • BUILD: renamed from python/set_values_and_export_mesh_v1_5_0.py (now obsolete)
    • DOCS: changed function description
  • ppm_demo:

    • FEAT: added option 'auto_correct' to input parameters of ppm_set_values()
    • FEAT: added 'shade_smooth' input parameter when calling ppm_set_values() for demonstration purposes
    • BUILD: now calls ppm_plot_distance() instead of ppm_plot_hd()
    • DOCS: added latest PPM-related publication
    • DOCS: updated description of the script
  • ppm_initialize():

    • FIX: extended cleanup to remove stl files
    • FIX: changed command for deleting 'blender_render.log'
    • FIX: now paths may contain spaces
    • DOCS: changed function description and some comments
  • ppm_get_values():

    • BUILD: now calls python/get_values_and_export_mesh_v1_6_0.py
    • FIX: now paths may contain spaces
    • DOCS: updated function description and some comments
  • ppm_set_values():

    • FEAT: added 'shade_smooth' to smooth mesh faces to make rendered images more pleasing
    • FIX: now paths may contain spaces
    • FIX: added 'sample_start_idx' when calling ppm_get_values() within ppm_set_values() for correct naming of result files, in case ppm_get_values() was not called before running the latter function
    • DOCS: updated function description
  • ppm_modify_parameter_values():

    • BUILD: changed parameter sets and cam-related settings are now saved in the sub-folders 'parameters' and 'cam', respectively, in the result folder
    • BUILD: accounted for file-name start idx of the exported files
  • ppm_blender_execute():

    • BUILD: now calls python/set_values_and_export_mesh_v1_6_0.py
    • FIX: now paths may contain spaces
  • ppm_evaluate():

    • BUILD: evaluation now accounts for direction-dependent distance metrics, i.e. directed pointwise minimum distances of direction 1 and 2, and Hausdorff distance
    • BUILD: added path error when target mesh does not exist
    • BUILD: replaced function call ppm_plot_hd() by ppm_plot_distance()
    • BUILD: removed unwanted printed output
    • FIX: fixed dimension of ppm.evaluate.hd for itr>1
    • FIX: now paths may contain spaces
    • STYLE: freeze aspect ratio when rotating
    • STYLE: print geometric errors in table format
    • DOCS: corrected axis labels and printed output
    • DOCS: updated function description and changed some comments
  • ppm_plot_distance():

    • BUILD: renamed from ppm_plot_hd()
    • BUILD: now plots direction-dependent distance, i.e. directed pointwise minimum distances of direction 1
  • ppm_test

    • TEST: added tic/toc
    • DOCS: added diary
    • DOCS: updated function description
    • BUILD: moved to folder test

Matlab_1.5.0

26 May 07:55
Compare
Choose a tag to compare

Parametric pinna model (PPM) - MATLAB interface

Author: Florian Pausch (2022)

Versions and contributors:
0.8 and above: Florian Pausch (2022)
0.7 and below: Oscar Jones, Mantas Tamulionis (2021)

Current version:
1.5.0 (release)

OVERVIEW

  • demo_ppm
    MATLAB script to demonstrate the functionality of the interface to the PPM (single-parameter and multiple-parameter input), including bi-directional communication with Blender via Python API

  • Main functions:

  1. ppm_initialize()

    • Initialize the PPM structure array
    • Optionally clean up previous data in result directory
  2. ppm_get_values()

    • Obtain the parameter values from the PPM contained in the Blender file to be modified, as specified in the PPM structure array
    • Return a subset of parameter values as per 'type', 'name', 'axis'
    • Save the comma-separated parameter set as txt file
    • Render the PPM as point cloud (ply file) or mesh (stl file)
  3. ppm_set_values()
    Set the parameter values of the PPM contained in the Blender file to be modified

    • Independently select and modify parameters via 'type'/'name'/'axis'
    • Use cell-array input to select and modify multiple parameters simultaneously
    • Specify the rotation of PPM parameters via Euler angles
    • itr=1: Change the selected parameter values only once as per ppm.modify.instruction_mode
    • itr>1: Change itr neigboring values in steps of range/itr in a range of (+/- range/2) symmetric around val
    • sample_start_idx: File-name index. If itr>1 the exported or rendered files start at this index, which is incremented
    • Export the PPM as point cloud (ply file)
    • Export the PPM as mesh (stl file)
    • Render the PPM as image (png image)
    • Render rendered image's depth information as png and exr images (with control of depth-map range)
    • Manually set the camera pose when rendering the PPM
    • Automatically set the camera rotation to point at a specified reference point cam_loc_ref before rendering
  4. ppm_evaluate()
    Evaluate the PPM mesh against a target mesh in terms of the Hausdorff distance

    • Only for single-parameter input in ppm_set_values: Plot parameter value per iteration (ppm.modify.itr)
    • Plot modeled point cloud vs. target point cloud
    • Plot histogram of Hausdorff values
    • If ppm.modify.itr > 1 the parameter value is set to the one resulting in the minimum mean minimum Hausdorff distance across iterations
  • ppm_evaluate_multiple_meshes
    MATLAB script to compare multiple PPM meshes to the corresponding target meshes and evaluate their geometric fit in terms of the Hausdorff distance

  • ppm_test
    MATLAB script for comprehensive tests of ppm_initialize(), ppm_get_values(), ppm_set_values() (single-parameter and multiple-parameter inputs), and ppm_evaluate()

COMPATIBILITY

  • Versions 1.1.0 and above only work with the Blender model ARI_PPM_v1 (armature and object definitions), see config/parameter_defaults_v1.mat and config/shape_key_limits_v1.mat.
  • Version 1.5.0 requires the current Python scripts python/get_values_and_export_mesh_v1_5_0.py and python/set_values_and_export_mesh_v1_5_0.py

RELEASE NOTES

  • python/get_values_and_export_mesh_v1_5_0.py:

    • BUILD: renamed from python/get_values_and_export_mesh_v1_4_0.py (now obsolete)
    • FEAT: fetch PPM parameters, export them as txt-file to the sub-folder 'parameters', and optionally export as point cloud and mesh to the sub-folders 'pc' and 'mesh', respectively, all located in the result folder
  • python/set_values_and_export_mesh_v1_5_0.py:

    • BUILD: renamed from python/set_values_and_export_mesh_v1_4_0.py (now obsolete)
    • BUILD: if required create sub-folders in the result folder for 'img', 'img_depth' (-> 'png', -> 'exr'), 'pc', 'mesh', 'cam'
    • BUILD: move 'blender_render.log' to base-result folder
    • FIX: disable all objects (including the target mesh) except ARI_PPM_v1 for rendering
    • DOCS: updated function description
  • ppm_demo:

    • BUILD: changed argument 'mesh' to 'pc' to export modelled mesh as point cloud (ply file)
    • FEAT: added 'sample_start_idx' to demonstrate its usage in ppm_get_values() and ppm_set_values()
    • FIX: removed unnecessary selection in example for multiple-parameter input
    • FIX: changed mesh to pc when calling ppm_evaluate()
    • REFACTOR: extended set of input arguments when calling ppm_set_values()
    • DOCS: updated release-version number in function description
  • ppm_initialize():

    • BUILD: account for introduced result sub-folders, and optionally auto-delete all existing export/render sub-folders in result folder
    • DOCS: changed function description and some comments
  • ppm_get_values():

    • BUILD: now calls python/get_values_and_export_mesh_v1_5_0.py
    • BUILD: added folder 'parameters' to save fetched parameter values and deleted 'blender_bones_data.txt'
    • FEAT: added input arguments to optionally export mesh as ply and/or stl file
    • FEAT: added input argument to define the file-name start idx ('sample_start_idx') of the exported files (txt, ply, stl)
    • FIX: now fetches parameters from [ppm.modify.sample_start_idx, .txt] instead of blender_bones_data.txt, the latter containing default PPM-parameter values
    • DOCS: updated function description and some comments
  • ppm_set_values():

    • BUILD: automatically create sub-folders in result folder per file type to separately store exported and rendered files (folders: parameters, pc, mesh, img, img_depth with sub-folders for png and exr files, and cam)
    • FEAT: changed argument 'mesh' to 'pc' to export the PPM as point cloud (ply file)
    • FEAT: used old argument 'mesh' to export the PPM as mesh (stl file; instead of ply)
    • FEAT: added input argument to define the file-name start idx of the exported files (txt, ply, stl, png, exr)
    • FIX: execute ppm_get_values() if not done before executing ppm_set_values()
    • DOCS: extended function description and changed some comments
  • ppm_modify_parameter_values():

    • BUILD: changed parameter sets and cam-related settings are now saved in the sub-folders 'parameters' and 'cam', respectively, in the result folder
    • BUILD: accounted for file-name start idx of the exported files
  • ppm_blender_execute():

    • BUILD: now calls python/set_values_and_export_mesh_v1_5_0.py
    • FEAT: extended parsing to include 'pc' to export the PPM as point cloud (ply file)
    • DOCS: changed some comments
  • ppm_evaluate():

    • BUILD: removed 'path_pc_result' and 'name_pc_result' from input-arguments set
    • FEAT: added 'sample_start_idx' to input parameters
    • FIX: added error message if result point cloud does not exist
    • DOCS: changed term mesh to pc (point cloud)
    • DOCS: updated function description and changed some comments
  • ppm_test

    • TEST: added and varied 'sample_start_idx' as test cases
    • TEST: added and varied 'image', 'image_depth', 'pc' and 'mesh' as test cases