Objective Morality
Objective Morality is a Python project that provides a framework for analyzing ethical dilemmas from various philosophical perspectives. It’s designed to be a tool for teaching and exploring the differences between philosophical ideas and how they relate to one another. By defining a “moral context” for a given action, you can see how different ethical engines would evaluate that action, providing a side-by-side comparison of their conclusions.
This project is intended for educational purposes, particularly in a university setting, to help students understand the practical application of ethical theories.
Features
- Multiple Moral Engines: The project includes implementations of several major ethical frameworks.
- Customizable Scenarios: Define your own ethical dilemmas by creating simple JSON files.
- Comparative Analysis: The output clearly shows the judgment of each philosophical engine.
- Consistency-Checking: The system runs checks to highlight logical tensions between the verdicts of different engines.
- Typed and Extensible: The codebase uses Python’s type hinting and is designed to be easily extended.
Head over to our GitHub repository for detailed directions on how to use this project.

The Moral Engines
- Kantian Engine: Evaluates actions based on the Categorical Imperative.
- Utilitarian Engine: Focuses on the consequences of an action, judging it based on whether it produces the greatest good.
- Aristotelian Engine: Assesses actions based on whether they align with a virtuous character.
- Contractualist Engine: Judges actions based on whether they would be permitted by rules that free, equal, and rational people would agree to.
- Rossian Engine: Balances multiple prima facie (self-evident) duties.
- Nietzschean Engine: Analyzes actions based on whether they express a “will to power”.
- Ethics of Care Engine: Prioritizes the maintenance of relationships and the needs of specific, vulnerable individuals.
- Rawlsian Engine: Evaluates actions from behind a “veil of ignorance”.