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:

Release files for vdd 3.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vdd 3.1.0
File Size Uploaded
vdd-3.1.0.tar.gz 121.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vdd 3.1.0
File Interpreter ABI Platform
vdd-3.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 194.9 kB

Release files / vdd-3.1.0.tar.gz

Download URL vdd-3.1.0.tar.gz
Size 121.0 kB
Tags Source
SHA-256 checksum
How to use checksums
d0d1eb2eaa1bdb04614dbc59a77b537fe5cf407d042bbb1e260dfbce0a6fd48e
BLAKE2b-256 checksum
How to use checksums
4d2571a1f4008d991f141ba7915897458e0224432ef86e2bd67b9cb4ac149416
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release files / vdd-3.1.0-py3-none-any.whl

Download URL vdd-3.1.0-py3-none-any.whl
Size 73.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2f548d2821d7c9d63c3c7d1d39a16757b58b6160789abc3d2e371f6d4bc01ef2
BLAKE2b-256 checksum
How to use checksums
0f2bc0f542dccbf0b5b1b3b4d14d34f94578033f48a06b1bfe75797e2f57363f
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release history Release notifications | RSS feed

This release

3.1.0 This release

2 release files

3.0.3

2 release files

3.0.2

2 release files

3.0.1

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.1.1

2 release files

0.4.0

2 release files

0.3.2

2 release files

0.2.0

2 release files

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page