personalitygen
personalitygen generates simulated character personalities for games, storytelling, simulations, and tests. It supports
conventional Big Five (OCEAN) profiles and Adaptive Bifurcated Big Five (ABBF) signed-vector profiles.
Intent and scope
- Generate full Big Five profiles with sub-trait components and aggregate scores.
- Generate ABBF profiles as signed 5D vectors with dominant poles.
- Bias outputs by life stage using tuned Gaussian distributions (child, young adult, adult).
- Derive a conflict-resolution style from trait weights, plus mapped concern-for-self/others.
- Project Big Five profiles into ABBF vectors for systems that want both model shapes.
- Support deterministic generation by accepting a seeded random source.
- Stay lightweight and dependency-free (pure Python).
Model overview
- Big Five traits: openness, conscientiousness, extraversion, agreeableness, neuroticism.
- Each trait is composed of three sub-traits and an aggregate score.
- Life stage changes sampling means. Standard deviation is fixed per trait.
- Conflict-resolution style is selected from avoiding, obliging, integrating, dominating, or compromising based on trait scores.
- ABBF profiles use five signed axes in chart order: order, chaos, cooperation, conflict, and competition.
- Positive ABBF values select the chart's left pole; negative values select the chart's right pole.
Usage
from personalitygen import BigFivePersonality, LifeStage
personality = BigFivePersonality.random(LifeStage.ADULT)
print(personality.traits)
print(personality.conflict_resolution)
If you want deterministic output, pass a seeded random number generator:
import random
from personalitygen import BigFiveTraits, LifeStage
rng = random.Random(42)
traits = BigFiveTraits.random(LifeStage.YOUNG_ADULT, rng=rng)
print(traits)
Custom random sources need only provide uniform(minimum, maximum). They may
return either inclusive endpoint and must return a finite value inside the
requested range. A fixed draw sequence is reproducible within one package
version; the same integer seed is not guaranteed to produce identical profiles
after a later model or algorithm change.
ABBF profiles can be generated directly or projected from Big Five traits:
from personalitygen import AdaptiveBifurcatedProfile
profile = AdaptiveBifurcatedProfile.random()
print(profile.vector)
print(profile.dominant_poles(threshold=0.2))
projected = AdaptiveBifurcatedProfile.from_big_five(traits)
print(projected.cosine_similarity(profile))
Development
This package targets Python 3.11+.
pdm install --group dev
pdm run check
Deeper architecture, quality, and maintenance guidance lives in the
repository documentation.
Simulation recipes live in the
usage guide,
and runnable examples live in examples/.
Metadata
Release files for personalitygen 0.4.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| personalitygen-0.4.2.tar.gz | 12.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| personalitygen-0.4.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 26.2 kB
Release files / personalitygen-0.4.2.tar.gz
| Download URL | personalitygen-0.4.2.tar.gz |
|---|---|
| Size | 12.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4366680805fa171e0d0c16e9e27dee9191faf3e839e7bd99c046f43fce0513f3
|
|
BLAKE2b-256 checksum How to use checksums |
07e74503937a1a62509e130f4ab90b87ff401f80af5eefcce7e6541b2c1de3b7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.
Transparency logRelease files / personalitygen-0.4.2-py3-none-any.whl
| Download URL | personalitygen-0.4.2-py3-none-any.whl |
|---|---|
| Size | 13.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d6d4b1cafcf4445e1d00927f6727237187b8433a029d1fd1a42a1439ee3e73cf
|
|
BLAKE2b-256 checksum How to use checksums |
a4577db790bb4690dd4dc89468c6e53920f0294120f78086fb7e667e0a8b6b4d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.
Transparency log