Skip to content

an interactive environment for designing 2d sound arcologies with norns and grid

License

Notifications You must be signed in to change notification settings

northern-information/arcologies

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

arcologies

an interactive environment for designing 2d sound arcologies with norns and grid

Latest Release

arctangents & archangels

eternal september

arcologies

If you are an artist, musician, or arcologist here to use this tool, everything you need to know is in the docs. Join the discussion on lines.

This README is for developers looking to contribute in building arcologies.

Changelog

The changelog is located here.

Technical

  • The developer manual video is the fastest way to learn arcologies. It includes a walkthrough of the architecture and deep dives into the most complex parts of the software.
  • To learn the codebase, read arcologies.lua and lib/includes.lua.
  • Next, skim through keeper.lua, Cell.lua, Signal.lua, and counters.lua.
  • Cell and Signal are the only classes. Signals are primitive. Cells are complex.
  • config.lua is where signal, cellular, and global behavior is composed.
  • Cell traits/mixins are inside lib/mixins. Even though there are many different types of cell structures, they're all just instances of the same Cell class. Changing their structure toggles behaviors and traits on and off (e.g. cell:change("TOPIARY") will update the structure of the selected cell, hide the attributes that no longer apply, and activate the topiary attributes).
  • Saving and loading (fn.collect_data_for_save() & fn.load()) is rudimentary and perhaps fragile. As the project evolves I'd like to take care and keep things as backwards-compatible as possible. May athens.arcology always load!

Contributing

Contributions are welcome, however I have some pretty firm boundaries about what arcologies is and is not. I recommend watching all the videos in this playlist to get inside my head a bit more. If you have an idea for a significant undertaking that you'd like to contribute, please consider talking with me first. I'd hate to see you pour a bunch of energy into a feature that doesn't align with the vision. That said, I'll consider all feature requests! Thank you.

Credits

Software design by Tyler Etters.