Skip to main content

Tools for Value-Driven Design

cc-angular release-tool

Tools intended to help with modelling decisions in a value centric design process. The intent is to keep this as generic as possible, as some of this decision modelling is suited to generic decision-making, non-design activities with a little massaging.

Features

  • Concept Design Analysis (CODA) method implementation
  • Requirements weighting with a Binary Weighting Matrix
  • Programmatic or Spreadsheet based model creation (via Excel workbooks or Google Sheets).
  • Native JSON serialisation for both CODA models and Binary Weighting Matrices (human-readable, git-diff-friendly).
  • Command-line interface for quick model inspection and interactive weighting

Install

pip install vdd

CLI

vdd ships with a command-line interface for the two core workflows.

Inspect a CODA model

Load a CODA model from an Excel file and print the overall design merit alongside a per-requirement satisfaction summary:

vdd coda path/to/model.xlsx

By default the compact Excel format is assumed. Pass --parser full for the standard format:

vdd coda path/to/model.xlsx --parser full

Weight requirements interactively

Step through a pairwise comparison of requirements and print the resulting normalised scores:

vdd requirements weight "Lightweight" "Stiff" "Durable"

Questions are shuffled by default. Pass --no-shuffle to work through them in a fixed order.

JSON model i/o

Both CODA models and Binary Weighting Matrices serialise to and from a flat, human-readable JSON format. This is handy for version-controlling models or moving them between the two tools.

from vdd.coda.models import CODA
from vdd.requirements.models import BinWM

# Weight requirements with a binary weighting matrix, then persist it.
bwm = BinWM('Stiffness', 'Friction', 'Weight')
bwm.prompt()
bwm.to_json('weights.json')

# Seed a CODA model directly from the weighting matrix scores.
coda = CODA()
coda.add_requirements_from(bwm)

# Round-trip a CODA model through JSON.
coda.to_json('model.json')
reloaded = CODA.read_json('model.json')

to_json() returns a string when no path is given. to_dict() / from_dict() expose the same data as plain-python dicts. The BinWM format ({"requirements": [...], "binary_matrix": [[...]]}) is the same shape used by the bundled example fixtures.

Documentation

Currently just stored in the repo.

Development

In the repository root:

uv sync

Releases

Managed by Release Please with auto-versioning. Changes to default branch will be accumulated in a release PR based on Conventional Commits. Merging the release PR will automatically publish the versioned package to PyPI.

Roadmap

  • Model sets for comparative work (rather than a single set of characteristic parameter values)
  • Improved visualisation
  • Export CODA models to Excel template
  • House of Quality style requirement/characteristic weighting
  • Pandas everywhere (v1.x)

References

Based on my own degree notes and open access literature:

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vdd-3.1.0.tar.gz (121.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vdd-3.1.0-py3-none-any.whl (73.8 kB view details)

Uploaded Python 3

File details

Details for the file vdd-3.1.0.tar.gz.

File metadata

  • Download URL: vdd-3.1.0.tar.gz
  • Upload date:
  • Size: 121.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for vdd-3.1.0.tar.gz
Algorithm Hash digest
SHA256 d0d1eb2eaa1bdb04614dbc59a77b537fe5cf407d042bbb1e260dfbce0a6fd48e
MD5 c5b5649ae679ef5a777013b213e6c3f9
BLAKE2b-256 4d2571a1f4008d991f141ba7915897458e0224432ef86e2bd67b9cb4ac149416

See more details on using hashes here.

File details

Details for the file vdd-3.1.0-py3-none-any.whl.

File metadata

  • Download URL: vdd-3.1.0-py3-none-any.whl
  • Upload date:
  • Size: 73.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for vdd-3.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2f548d2821d7c9d63c3c7d1d39a16757b58b6160789abc3d2e371f6d4bc01ef2
MD5 8b8dd04a77027665b1bf9a616f958206
BLAKE2b-256 0f2bc0f542dccbf0b5b1b3b4d14d34f94578033f48a06b1bfe75797e2f57363f

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

3.1.0 This release

2 files

3.0.3

2 files

3.0.2

2 files

3.0.1

2 files

2.0.1

2 files

2.0.0

2 files

1.1.1

2 files

0.4.0

2 files

0.3.2

2 files

0.2.0

2 files

0.1.3

1 file

0.1.2

1 file

0.1.1

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page