{"id":25457299,"url":"https://github.com/youngermaster/spacey","last_synced_at":"2025-11-02T12:30:29.930Z","repository":{"id":277789543,"uuid":"933495075","full_name":"Youngermaster/Spacey","owner":"Youngermaster","description":"Spacey is an Elixir project for validating and visualizing automata. It is currently under development and provides basic functionality to generate visual representations of deterministic finite automata (DFAs) using Graphvix. ","archived":false,"fork":false,"pushed_at":"2025-02-16T05:21:12.000Z","size":66,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-16T06:23:22.052Z","etag":null,"topics":["automata","elixir"],"latest_commit_sha":null,"homepage":"","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Youngermaster.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-16T04:59:23.000Z","updated_at":"2025-02-16T05:21:15.000Z","dependencies_parsed_at":"2025-02-16T06:23:25.252Z","dependency_job_id":"5062ac9d-30b5-4773-b4df-bcc16748d90b","html_url":"https://github.com/Youngermaster/Spacey","commit_stats":null,"previous_names":["youngermaster/spacey"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Youngermaster%2FSpacey","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Youngermaster%2FSpacey/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Youngermaster%2FSpacey/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Youngermaster%2FSpacey/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Youngermaster","download_url":"https://codeload.github.com/Youngermaster/Spacey/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239394714,"owners_count":19631122,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automata","elixir"],"created_at":"2025-02-18T02:16:57.661Z","updated_at":"2025-11-02T12:30:29.900Z","avatar_url":"https://github.com/Youngermaster.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Spacey\n\n## ⚠️ Under Development\n\nSpacey is an Elixir project for validating and visualizing automata. It is currently under development and provides basic functionality to generate visual representations of deterministic finite automata (DFAs) using Graphvix. The project is named after the One Piece automata *Spacey*, a loyal first lieutenant automata.\n\n## Current Features\n\n- **Automata Visualization:** Generate DOT and PNG files for DFAs defined by states, an alphabet, a transition table, an initial state, and final states.\n- **Interactive Testing:** Quickly test your automata visualization from the IEx shell.\n- **Graphical Output:** Uses Graphvix (a lightweight Elixir interface to Graphviz) for creating static images.\n\n## Installation\n\nIf available in Hex, the package can be installed by adding `spacey` to your list of dependencies in `mix.exs`:\n\n```elixir\ndef deps do\n  [\n    {:spacey, \"~\u003e 0.1.0\"}\n  ]\nend\n```\n\n### Dependencies\n\nYou'll need to install Graphviz on your system:\n\n- **Ubuntu/Debian:**\n\n  ```shell\n  sudo apt-get update\n  sudo apt-get install graphviz\n  ```\n\n- **macOS (with Homebrew):**\n\n  ```shell\n  brew install graphviz\n  ```\n\n- **Windows:**\n  Download and install Graphviz from [Graphviz's website](https://graphviz.org/download/), and ensure the installation directory is added to your system’s PATH.\n\n## Usage\n\n### In an IEx Session\n\nLaunch IEx with your project:\n\n```shell\niex -S mix\n```\n\nThen, you can generate a DFA automata image with the following example:\n\n```elixir\nstates = [0, 1, 2, 3]\nalphabet = [\"a\", \"b\"]\ntransitions = [\n  [1, 2],\n  [0, 3],\n  [2, 3],\n  [3, 3]\n]\ninitial_state = 0\nfinal_states = [3]\n\nSpacey.Automata.visualize(states, alphabet, transitions, initial_state, final_states, \"my_automata\")\n```\n\nThis call creates the files `my_automata.dot` and `my_automata.png` in your project directory. It might look like this:\n\n![my_automata.png](my_automata.png)\n\n## Project Structure\n\n- `lib/spacey.ex`: Main module with basic functions.\n- `lib/spacey/automata.ex`: Module for visualizing automata using Graphvix.\n- `mix.exs`: Project configuration and dependencies.\n- `.formatter.exs`, `test/`: Standard Elixir project files.\n\n## Inspiration\n\nThe project takes its name from *Spacey*, the automata from One Piece.  \nSpacey is a first lieutenant automata, characterized by his military gear, loyalty, and a unique style. The character’s story—from his creation on Karakuri Island to his adventures and loyal service—has inspired the creative direction of this project.\n\n![Spacey-One-Piece](.github/assets/Spacey_Manga_Infobox.webp)\n\n## Future Work\n\n- **Enhanced Validation:** Add more features for analyzing automata.\n- **Extended Automata Support:** Support for non-deterministic and other types of automata.\n- **Interactive Visualizations (Maybe):** Develop interactive tools for real-time automata manipulation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyoungermaster%2Fspacey","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyoungermaster%2Fspacey","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyoungermaster%2Fspacey/lists"}