Skip to content

Releases: Any2HRTF/PPM

Matlab_1.4.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.4.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'
    • Render the PPM mesh as ply 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: test itr neigboring values in steps of range/itr in a range of (+/- range/2) symmetric around val
    • Render the PPM mesh as ply file
    • Render the PPM mesh as png image
    • Render depth information as png and exr images (with control of depth-map range)
    • Manually set the camera pose when rendering the mesh as image
    • Automatically set the camera rotation to point at a specified reference point cam_loc_ref
  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
    New 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.4.0 requires the current Python scripts python/get_values_and_export_mesh_v1_4_0.py and python/set_values_and_export_mesh_v1_4_0.py

RELEASE NOTES

  • python/get_values_and_export_mesh_v1_4_0.py:

    • BUILD: renamed from python/get_values_and_export_mesh_v1_3_1.py (no code changes)
  • python/set_values_and_export_mesh_v1_4_0.py:

    • BUILD: renamed from python/set_values_and_export_mesh_v1_3_1.py (now obsolete)
    • REFACTOR: changed default value of 'depth_nearest' from NaN to 'cam_loc'
  • ppm_demo:

    • FEAT: added flag to switch between examples for single-parameter and multiple-parameter inputs when calling ppm_set_values()
    • DOCS: updated function description, release-version number, and some comments
  • ppm_get_values():

    • BUILD: now calls python/get_values_and_export_mesh_v1_4_0.py
    • DOCS: updated function description and some comments
  • ppm_set_values():

    • FEAT: extended functionality to enable simultaneous parameter changes given cell arrays as input
    • REFACTOR: changed default value of 'depth_nearest' from NaN to 'cam_loc'
    • FIX: extended input-error control accounting for cell-array input
    • FIX: included input-error message if axis triplets are not fully-occupied when using rotation modes other than 'quaternion' (cell-array input)
    • FIX: addressed isotropic scaling of bendy bones when changing a single parameter value (automatic copying of the set value to the remaining axes)
    • FIX: included error message if 'scale' is used together with 'W' as 'axis'
    • FIX: included input-error message if user tries to scale a bendy bone (except Size-Bendy) anisotropically (cell-array input)
    • FIX: distinguished between single-parameter and cell-array inputs when assigning parsed results to ppm.modify.type/.name/.axis
    • DOCS: extended function description and changed some comments
  • ppm_modify_parameter_values():

    • FEAT: extended functionality to enable simultaneous parameter changes given cell arrays as input
    • FIX: fixed wrong index when checking shape-key limits
    • FIX: shape-key limits were not updated correctly in modify.val
    • FIX: shape-key limits were not updated correctly in ppm.parameters
  • ppm_blender_execute():

    • BUILD: now calls python/set_values_and_export_mesh_v1_4_0.py
    • DOCS: changed some comments
  • ppm_evaluate():

    • FIX: removed parameter-value-over-iteration tile provided multiple-parameter changes in the PPM structure array
    • DOCS: updated function description and some comments
  • ppm_test

    • NEW: MATLAB script for comprehensive tests of interface-related functions

Matlab_1.3.1

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: Mantas Tamulionis (2021)

Current version:
1.3.1 (release)

OVERVIEW

  • demo_ppm
    MATLAB script to demonstrate the functionality of the interface to the PPM, 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'
    • Render the PPM mesh as ply 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'
    • 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: test itr neigboring values in steps of range/itr in a range of (+/- range/2) symmetric around val
    • Render the PPM mesh as ply file
    • Manually set the camera pose when rendering an image
    • Automatically set the camera rotation to point at a specified reference point cam_loc_ref
    • Render the PPM mesh as png image
    • Render depth information as png and exr images (with control of depth-map range)
  4. ppm_evaluate()
    Evaluate the PPM mesh against a target mesh in terms of the Hausdorff distance

    • Plot modeled point cloud vs. target point cloud
    • Plot histogram of Hausdorff values
    • If ppm.modify > 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

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.3.1 requires the current Python scripts python/get_values_and_export_mesh_v1_3_1.py and python/set_values_and_export_mesh_v1_3_1.py

RELEASE NOTES

  • python/get_values_and_export_mesh_v1_3_1.py:

    • BUILD: renamed from python/get_values_and_export_mesh_v1_3_0.py (no code changes)
  • python/set_values_and_export_mesh_v1_3_1.py:

    • BUILD: renamed from python/set_values_and_export_mesh_v1_3_0.py (now obsolete)
    • FEAT: added parameters to control the depth-map range in the corresponding compositing node
      * Minimum of input range: 0 (default; in Blender units); can be set via 'depth_farthest' in ppm_set_values() (resulting in black colors in normalised output of map-range node)
      * Maximum of input range: Euclidian distance of camera to origin of global coordinate system in Blender units (default); can be set via 'depth_nearest' in ppm_set_values() (resulting in white colors in normalised output of map-range node)
      * Minimum of output range: 1 (white), normalised
      * Maximum of output range: 0 (black), normalised
    • FEAT: PNG files are now denoised using an additional denoise node in the compositor
    • PERF: integrated functionality of get_depth() into render()
    • PERF: switched to the physically-based renderer CYCLES
  • ppm_demo:

    • FEAT: included additional input parameters to control depth-map range when calling ppm_set_values()
    • DOCS: changed current release version to 1.3.1
  • ppm_get_values:

    • BUILD: now calls python/get_values_and_export_mesh_v1_3_1.py
  • ppm_set_values:

    • FEAT: added input arguments to control nearest and farthest values in (normalised) depth map
    • DOCS: added description of input arguments to control nearest and farthest values in (normalised) depth map
  • ppm_blender_execute:

    • BUILD: now calls python/set_values_and_export_mesh_v1_3_1.py using the additional input parameters for depth-map control

Matlab_1.3.0

26 May 07:54
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.3.0 (release)

OVERVIEW

  • demo_ppm
    MATLAB script to demonstrate the functionality of the interface to the PPM, 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'
    • render the PPM mesh as ply 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'
    • 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: test itr neigboring values in steps of range/itr in a range of (+/- range/2) symmetric around val
    • render the PPM mesh as ply file
    • manually set the camera pose when rendering an image
    • automatically set the camera rotation to point at a specified reference point cam_loc_ref
    • render the PPM mesh as png image
    • render depth information as png and exr images
  4. ppm_evaluate()
    Evaluate the PPM mesh against a target mesh in terms of the Hausdorff distance

    • plot modeled point cloud vs. target point cloud
    • plot histogram of Hausdorff values
    • if ppm.modify > 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

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.3.0 requires the current Python scripts python/get_values_and_export_mesh_v1_3_0.py and python/set_values_and_export_mesh_v1_3_0.py

RELEASE NOTES

  • python/get_values_and_export_mesh_v1_3_0.py:

    • BUILD: renamed from get_values_and_export_mesh_v1_2.py (no code changes)
    • DOCS: added description and author contributions
  • python/set_values_and_export_mesh_v1_3_0.py:

    • BUILD: renamed from set_values_and_export_mesh_v1_2.py (now obsolete)
    • FEAT: implemented depth extraction via Blender's compositing nodes
      - use depth output from render-layer node
      - map depth output:
      * minimum of input range: 0
      * maximum of input range: Euclidian distance of camera to origin of global coordinate system in Blender units
      * minimum of output range: 1 (white), normalised
      * maximum of output range: 0 (black), normalised
    • FEAT: depth map is saved as OPEN_EXR and PNG files
    • FEAT: added input parameters for various file settings (see function description of ppm_set_values)
    • PERF: renamed automatically generated ouput files by removing frame idx
    • DOCS: added description and author contributions
  • ppm_initialize:

    • FIX: incomplete clean-up of previous data
  • ppm_get_values:

    • BUILD: now calls python/get_values_and_export_mesh_v1_3_0.py
    • DOCS: updated function description
  • ppm_set_values:

    • FEAT: extended parser to control rendering parameters of PNG and EXR files
    • PERF: removed optional input parameters as parser in ppm_blender_execute was removed
    • DOCS: updated function description
  • ppm_blender_execute:

    • BUILD: now calls python/set_values_and_export_mesh_v1_3_0.py
    • FEAT: extended parser to control rendering parameters of PNG and EXR files
    • PERF: removed parser and instead use modified parameter values in PPM struct
    • DOCS: updated function description

Matlab_1.2.0

26 May 07:54
Compare
Choose a tag to compare

Parametric pinna model (PPM) - MATLAB interface

Author: Florian Pausch (2022)

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

Current version:
1.2.0 (release)

OVERVIEW

  • demo_ppm
    MATLAB script to demonstrate the functionality of the interface to the PPM, 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'
    • render the PPM mesh as ply 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'
    • 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: test itr neigboring values in steps of range/itr in a range of (+/- range/2) symmetric around val
    • render the PPM mesh as ply file
    • manually set the camera pose when rendering an image
    • automatically set the camera rotation to point at a specified reference point cam_loc_ref
    • render the PPM mesh as png image
  4. ppm_evaluate()
    Evaluate the PPM mesh against a target mesh in terms of the Hausdorff distance

    • plot modeled point cloud vs. target point cloud
    • plot histogram of Hausdorff values
    • if ppm.modify > 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

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.2.0 requires the current Python scripts python/get_existing_values_v1_2.py and python/set_existing_values_v1_2.py

RELEASE NOTES

  • python/get_values_and_export_mesh_v1_2.py:

    • BUILD: renamed from get_values_and_export_mesh_v1.py (now obsolete)
    • PERF: disabled rendering of blender_bones_data.ply
  • python/set_values_and_export_mesh_v1_2.py:

    • BUILD: renamed from set_values_and_export_mesh_v1.py (now obsolete)
    • FEAT: added default camera pose when rendering an image without defining a camera pose
    • FEAT: manually set camera position and orientation before rendering the image
    • FEAT: automatically rotate the camera to a defined reference point
    • PERF: disabled rendering of blender_bones_data.ply
  • ppm_initialize:

    • FIX: incomplete clean-up of previous data
    • FEAT: create folder 'external' and automatically download MATLAB class quaternion if not available
    • DOCS: updated function description
  • ppm_get_values:

    • BUILD: now calls python/get_values_and_export_mesh_v1_2.py
    • DOCS: updated function description
  • ppm_set_values:

    • BUILD: now calls python/set_values_and_export_mesh_v1_2.py
    • FEAT: added option to specify the rotation of PPM parameters via Euler angles
    • FEAT: added option to set camera position and orientation before rendering the image
    • FEAT: added option to automatically rotate the camera to a defined reference point
    • DOCS: updated function description
  • ppm_modify_parameter_values:

    • FEAT: reconstruct corresponding quaternion from modified triplet of Euler angles
    • FEAT: exports camera pose settings as txt-file to be loaded by python/set_values_and_export_mesh_v1_2.py
  • ppm_blender_execute:

    • BUILD: now calls python/set_values_and_export_mesh_v1_2.py
    • DOCS: updated function description
  • ppm_evaluate:

    • DOCS: updated function description

Matlab_1.1.0

26 May 07:53
Compare
Choose a tag to compare

Parametric pinna model (PPM) - MATLAB interface

Author: Florian Pausch (2022)

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

Current version:
1.1.0 (release)

OVERVIEW

  • demo_ppm
    MATLAB script to demonstrate the functionality of the interface to the PPM, including bi-directional communication with Blender via Python API

  • Main functions:

  1. ppm_initialize()
    Initialize the PPM structure array

  2. ppm_get_values()
    Obtain the parameter values from the Blender file to be modified, as specified in the PPM structure array, and return a subset of parameter values as per 'type', 'name', 'axis'

  3. ppm_set_values()
    Set the PPM parameter values of the Blender file to be modified
    -> independent parameter selection via 'type'/'name'/'axis'
    -> itr=1: change the selected parameter values only once as per ppm.modify.instruction_mode
    -> itr>1: test itr neigboring values in steps of range/itr in a range of (+/- range/2) symmetric around val

  4. ppm_evaluate()
    Evaluate the PPM mesh against a target mesh in terms of the Hausdorff distance
    -> plot histogram of Hausdorff values
    -> if ppm.modify > 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

COMPATIBILITY

  • versions 1.0.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. The corresponding Python scripts python/get_existing_values_v1.py and python/modify_and_export_v1.py have been updated.

VERSIONS

  • 1.1.0 (release)

    • blender model: renamed ARI_PPM_v0_3 to ARI_PPM_v1
    • get_existing_values_v0_3.py: renamed to get_values_and_export_mesh_v1.py, now additionally exports PPM template mesh as .ply file
    • modify_and_export_mesh_v0_3.py: renamed to set_values_and_export_mesh_v1.py
    • parameter_defaults_v0_3.mat: renamed to parameter_defaults_v1.mat
    • ppm_evaluate: added option to load other than default PPM mesh
  • 1.0.2:

    • ppm_evaluate: added option to set caxis limits
    • modify_and_export_mesh.py: removed decimate modifiers which reduce the complexity of the mesh when selecting the option 'remesh' in ppm_set_values()
    • config folder: renamed to default
    • external folder: removed
    • improved function descriptions
  • 1.0.1:

    • ppm_evaluate_multiple_meshes: new MATLAB script to compare multiple PPM meshes to the corresponding target meshes and evaluate their geometric fit in terms of the Hausdorff distance
  • 1.0.0:

    • blender model ARI_PPM_v0_2: renamed and updated to ARI_PPM_v1, new armature, object, and shape key definitions (not backward compatible, i.e. for versions below 1.0.0), naming conventions: Start with upper-case letter, continue in lower-case, string separators "_" and "-"
      <Bone_name>-<Part_of_bone> -> e.g. Helix_up-Start, Crus_inferius_anthelicis-Bendy
    • ppm_initialize: modified parameter_defaults_v1.mat and shape_key_limits_v1.mat (former parameter_limits.mat) to match new definitions
    • config folder: added new default blender file (PPM_default_v1.blend)
  • 0.9.3:

    • get_existing_values.py: added W component when fetching the parameter values from specified blender file (extension of the parameter set of type 'Rotation'). The previously ignored W-component of the orientation quaternion is now included and can be queried and set via ppm_get_values() and ppm_set_values(), respectively. The corresponding Python scripts python/get_existing_values.py and python/modify_and_export.py have been updated.
    • modify_and_export_mesh.py: added W-component when setting the parameter values in the specified blender file
    • ppm_initialize: updated initialization
    • parameter_defaults.mat: updated
  • 0.9.2:

    • ppm_get_values: select and return parameter values
  • 0.9.1:

    • ppm_get_values: selection of parameter values is now possible via parameter type and name
    • ppm_set_values: independent setting of parameter values
    • ppm_evaluate: itr>1: assign parameter values yielding the lowest Hausdorff distance to current set of parameter values
    • improved function descriptions
    • code improvements at several locations
  • 0.9.0:

    • switched to semantic versioning
    • improved interface design by implementing the functions ppm_initialize(), ppm_get_values(), ppm_set_values() and ppm_evaluate()
    • ppm_initialize: new MATLAB function to initialize the PPM structure array
    • ppm_get_values: new MATLAB function to obtain the parameter values from the blender file to be modified
    • ppm_set_values: new MATLAB function to set the PPM parameter values of the blender file to be modified
    • ppm_evaluate: new MATLAB function to evaluate the PPM template mesh against a target mesh in terms of the Hausdorff distance
    • added function descriptions
  • 0.8:

    • extensive MATLAB interface re-design
    • integrated functionality of previous interface versions into functions
    • renamed functions for consistency (ppm_<function name>)
    • new folder structure for improved tidyness (config, data, external, python, result)