An open API service indexing awesome lists of open source software.

https://github.com/peterss7/the-meaning-discordancy

An experimental game in development that uses NLP to simulate the emergence of meaning... Game mechanics only exist in paper notebook thus far but the math is very interesting.
https://github.com/peterss7/the-meaning-discordancy

asp-net-core configuration csharp docker emergence endpoints entity-framework game-development geometry git mathematics microservices nlp powershell python rest-api scss similarity-matrix similarity-score vscode

Last synced: 26 days ago
JSON representation

An experimental game in development that uses NLP to simulate the emergence of meaning... Game mechanics only exist in paper notebook thus far but the math is very interesting.

Awesome Lists containing this project

README

          

![Build](https://img.shields.io/badge/build-pending-lightgrey)
![License](https://img.shields.io/badge/license-proprietary-red)

Copyright Β© 2025 Steven Peterson
All rights reserved.

This software and all associated materials are the exclusive intellectual property of the author.
No part of this code may be copied, modified, distributed, or used without explicit written permission from the author.

**Note:** This project is not licensed under an open-source license.
Creative Commons references may be included for informational purposes only.

# The Meaning Discordancy

An experimental game of *emergent meaning*.

**The Meaning Discordancy** is a competitive language game where players turn units of truth to shape meaning along ideological spectrumsβ€”chaos/order, divine/physical, unity/divisionβ€”to make their alignment dominant.

## Description

This game uses NLP libraries to perform vector similarity calculations on player input, primarily as players take turns tagging images. Over time, thematic structures emerge, and players find themselves in a battle of ideology β€” where winning means constructing meaning more efficiently than your opponent... or losing to theirs.

That's the idea, anyway. It's a ways off, but that's the vision.

## Getting Started

### Dependencies

* Program runs in docker.

### NLP Similarity Evaluator Service
* Python
- flask, flask_smorest, flask-jwt-extended
- flask-sqlalchemy, flask-migrate, sqlalchemy, pyodbc
- python-dotenv, gunicorn, passlib
- sentence-transformers, scikit-learn

### TheMeaningDiscordancy API (C# Backend)
* .NET / EF Core
- Microsoft.AspNetCore.Http.Abstractions
- Microsoft.EntityFrameworkCore.SqlServer + Tools + Abstractions
- Microsoft.Extensions.Logging / DependencyInjection.Abstractions

### Angular Client
* Angular Material
* Storybook
* Rimraf

### Installing

* Installation scripts are still under development.
* Docker setup is not yet fully implemented.
* Frontend:
```bash
cd ./src/client
npm run install:all
* Python backend
```bash
cd ./src/nlp/powershell
./install.ps1

### Executing

* NLP Similarity Service(./src/nlp/powershell)
```
./run.ps1
```
Starts the Flask-based NLP backend.
* Angular Client(./src/client/)
```
npm run start:all
```
Starts both the client app and Storybook for component previews.

## File Structure

### The Discordancy Api
> Controllers and entry point

πŸ“ (click to expand)

```plaintext
β”‚ β”œβ”€β”€ TheMeaningDiscordancy.Api
β”‚ β”‚ β”œβ”€β”€ Classes
β”‚ β”‚ β”‚ └── AppHostSettings.cs
β”‚ β”‚ β”œβ”€β”€ DiscordApi
β”‚ β”‚ β”‚ β”œβ”€β”€ ConfigurationApiController.cs
β”‚ β”‚ β”‚ β”œβ”€β”€ ItemApiController.cs
β”‚ β”‚ β”‚ └── TagApiController.cs
β”‚ β”‚ β”œβ”€β”€ Extensions
β”‚ β”‚ β”‚ └── StatupExtensions.cs
β”‚ β”‚ β”œβ”€β”€ Program.cs
β”‚ β”‚ β”œβ”€β”€ Properties
β”‚ β”‚ β”‚ └── launchSettings.json
β”‚ β”‚ β”œβ”€β”€ TheMeaningDiscordancy.Api.csproj
β”‚ β”‚ β”œβ”€β”€ appsettings.Development.json
β”‚ β”‚ β”œβ”€β”€ appsettings.Local.json
β”‚ β”‚ └── appsettings.json
```

### The Discordancy Core Services
> Where the business logic of entities is executed.

πŸ“ (click to expand)

```plaintext
β”‚ β”œβ”€β”€ TheMeaningDiscordancy.Core
β”‚ β”‚ β”œβ”€β”€ CoreServices
β”‚ β”‚ β”‚ β”œβ”€β”€ CoreStartupExtensions.cs
β”‚ β”‚ β”‚ β”œβ”€β”€ Item
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ Configuration
β”‚ β”‚ β”‚ β”‚ β”‚ └── ItemConstants.cs
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ Extensions
β”‚ β”‚ β”‚ β”‚ β”‚ └── ItemStartupExtensions.cs
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ Mapping
β”‚ β”‚ β”‚ β”‚ β”‚ └── ItemProfile.cs
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ Models
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ Dtos
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ Create
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── CreateItemDto.cs
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ ItemDto.cs
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── Update
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── ItemUpdateDto.cs
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ Entities
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── ItemEfc.cs
β”‚ β”‚ β”‚ β”‚ β”‚ └── IItemMap.cs
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ Repositories
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ Interfaces
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── IItemRepository.cs
β”‚ β”‚ β”‚ β”‚ β”‚ └── ItemRepository.cs
β”‚ β”‚ β”‚ β”‚ └── Services
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ Interfaces
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ IItemMappingService.cs
β”‚ β”‚ β”‚ β”‚ β”‚ └── IItemService.cs
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ ItemMappingService.cs
β”‚ β”‚ β”‚ β”‚ └── ItemService.cs
β”‚ β”‚ β”‚ β”œβ”€β”€ Tag
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ Configuration
β”‚ β”‚ β”‚ β”‚ β”‚ └── TagConstants.cs
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ Extensions
β”‚ β”‚ β”‚ β”‚ β”‚ └── TagStartupExtensions.cs
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ Mapping
β”‚ β”‚ β”‚ β”‚ β”‚ └── TagProfile.cs
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ Models
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ Dtos
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ Create
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── CreateTagDto.cs
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── TagDto.cs
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ Entities
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── TagEfc.cs
β”‚ β”‚ β”‚ β”‚ β”‚ └── ITagMap.cs
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ Repositories
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ Interfaces
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── ITagRepository.cs
β”‚ β”‚ β”‚ β”‚ β”‚ └── TagRepository.cs
β”‚ β”‚ β”‚ β”‚ └── Services
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ Interfaces
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ ITagMappingService.cs
β”‚ β”‚ β”‚ β”‚ β”‚ └── ITagService.cs
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ TagMappingService.cs
β”‚ β”‚ β”‚ β”‚ └── TagService.cs
β”‚ β”‚ β”‚ └── Utilities
β”‚ β”‚ β”‚ β”œβ”€β”€ Classes
β”‚ β”‚ β”‚ β”‚ └── ImageData.cs
β”‚ β”‚ β”‚ β”œβ”€β”€ Extensions
β”‚ β”‚ β”‚ β”‚ └── UtilityStartupExtensions.cs
β”‚ β”‚ β”‚ └── Services
β”‚ β”‚ β”‚ β”œβ”€β”€ ImageUtilityService.cs
β”‚ β”‚ β”‚ └── Interfaces
β”‚ β”‚ β”‚ └── IImageUtilityService.cs
β”‚ β”‚ β”œβ”€β”€ DiscordContext.cs
β”‚ β”‚ β”œβ”€β”€ Properties
β”‚ β”‚ β”‚ └── launchSettings.json
β”‚ β”‚ β”œβ”€β”€ Results
β”‚ β”‚ β”‚ β”œβ”€β”€ DiscordError.cs
β”‚ β”‚ β”‚ β”œβ”€β”€ DiscordResult.cs
β”‚ β”‚ β”‚ └── Error.cs
β”‚ β”‚ └── TheMeaningDiscordancy.Core.csproj
```

### Discordancy Infrastructure
> Persistence/WIP

πŸ“ (click to expand)

```plaintext
β”‚ β”œβ”€β”€ TheMeaningDiscordancy.Infrastructure
β”‚ β”‚ β”œβ”€β”€ Classes
β”‚ β”‚ β”‚ └── Interfaces
β”‚ β”‚ β”‚ └── IDiscordDataEntity.cs
β”‚ β”‚ β”œβ”€β”€ Extensions
β”‚ β”‚ β”‚ └── PersistenceStartupExtensions.cs
β”‚ β”‚ β”œβ”€β”€ Repositories
β”‚ β”‚ β”‚ β”œβ”€β”€ DiscordRepository.cs
β”‚ β”‚ β”‚ └── Interfaces
β”‚ β”‚ β”‚ └── IDiscordRepository.cs
β”‚ β”‚ └── TheMeaningDiscordancy.Infrastructure.csproj
```

### Angular Client
> Not displaying ts, scss, and html file for angular components to consolidate space. The are there.

πŸ“ (click to expand)

```plaintext
β”‚ β”œβ”€β”€ client
β”‚ β”‚ β”œβ”€β”€ README.md
β”‚ β”‚ β”œβ”€β”€ angular.json
β”‚ β”‚ β”œβ”€β”€ documentation.json
β”‚ β”‚ β”œβ”€β”€ package-lock.json
β”‚ β”‚ β”œβ”€β”€ package.json
β”‚ β”‚ β”œβ”€β”€ src
β”‚ β”‚ β”‚ β”œβ”€β”€ app
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ app-routing.module.ts
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ app.module.ts
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ constants
β”‚ β”‚ β”‚ β”‚ β”‚ └── discord-constants.contants.ts
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ core
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ core.module.ts
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ models
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── config-data.model.ts
β”‚ β”‚ β”‚ β”‚ β”‚ └── services
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ client.service.ts
β”‚ β”‚ β”‚ β”‚ β”‚ └── config.service.ts
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ items
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ components
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ components.module.ts
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── item-table
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ item-table.module.ts
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── item-tile
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ items.module.ts
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ models
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ └── item.model.ts
β”‚ β”‚ β”‚ β”‚ β”‚ └── services
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ item-styles.service.ts
β”‚ β”‚ β”‚ β”‚ β”‚ └── items.service.ts
β”‚ β”‚ β”‚ β”‚ └── shared
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ components
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ action-bar
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ action-header
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ components.module.ts
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ file-upload
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ icon-button
β”‚ β”‚ β”‚ β”‚ β”‚ └── modal
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ layout
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ footer
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ header
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ home
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ layout.module.ts
β”‚ β”‚ β”‚ β”‚ β”‚ └── sidebar
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ models
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ config-data.model.ts
β”‚ β”‚ β”‚ β”‚ β”‚ └── modal-data.model.ts
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ pipes
β”‚ β”‚ β”‚ β”‚ β”‚ └── normalize-url.pipe.ts
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ services
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ modal.service.ts
β”‚ β”‚ β”‚ β”‚ β”‚ └── styles.service.ts
β”‚ β”‚ β”‚ β”‚ └── shared.module.ts
β”‚ β”‚ β”‚ β”œβ”€β”€ assets
β”‚ β”‚ β”‚ β”œβ”€β”€ index.html
β”‚ β”‚ β”‚ β”œβ”€β”€ main.ts
β”‚ β”‚ β”‚ β”œβ”€β”€ stories
β”‚ β”‚ β”‚ β”œβ”€β”€ styles
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ main.scss
β”‚ β”‚ β”‚ β”‚ └── mixins
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ _components.scss
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ _detail.scss
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ _layout.scss
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ components
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ _display-components.scss
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ _image-components.scss
β”‚ β”‚ β”‚ β”‚ β”‚ └── components.scss
β”‚ β”‚ β”‚ β”‚ └── mixins.scss
β”‚ β”‚ β”‚ └── styles.scss
β”‚ β”‚ β”œβ”€β”€ tsconfig.app.json
β”‚ β”‚ └── tsconfig.json
```

### NLP Similarity Evaluator Service
> Calculating scores by evaluating emergent similarities.

πŸ“ (click to expand)

```plaintext
β”‚ └── nlp
β”‚ β”œβ”€β”€ Dockerfile
β”‚ β”œβ”€β”€ __init__.py
β”‚ β”œβ”€β”€ app.py
β”‚ β”œβ”€β”€ powershell
β”‚ β”‚ β”œβ”€β”€ install.ps1
β”‚ β”‚ β”œβ”€β”€ reinstall.ps1
β”‚ β”‚ └── run.ps1
β”‚ β”œβ”€β”€ requirements.txt
β”‚ β”œβ”€β”€ resources
β”‚ β”‚ β”œβ”€β”€ __init__.py
β”‚ β”‚ └── tag_resource.py
β”‚ └── schemas
β”‚ β”œβ”€β”€ __init__.py
β”‚ └── tag_schema.py
```

## Utilities

From project root:
```bash
.\AddHeaders.ps1 # Add copyright headers
.\AddHeaders.ps1 --restore # Undo last header run
.\.treeignore\tree.py # Get a visual on the indentation situation
```
These scripts automatically add or remove legal headers across code files, formatting the comment style based on file extension.
Planned: --update functionality to refresh existing headers.

## Help

If Python imports cannot be resolved, ensure that your interpreter points to:
`./venv/Scripts/python.exe`

## Version History

* 0.1
* Initial Scaffold

## Acknowledgments

Inspiration, code snippets, etc.
TO-DO

## Authors & Contact
For licensing inquiries or collaboration opportunities:

**Steven Peterson** [LinkedIn β†’](https://www.linkedin.com/in/steven-peterson7405926/)
**TheMeaningDiscordancy** [Github β†’](https://github.com/peterss7/The-Meaning-Discordancy)