Package: tolvera
TölveraTölverais a library for exploring musical performance with artificial life (ALife) and self-organising systems. The word is an Icelandickenning:Tölva = computer, from tala (number) + völva (prophetess)Vera = beingTölvera = number beingTölvera is written inTaichi, a domain-specific language embedded in Python.This is experimental software and everything is currently subject to change.Join us on the TölveraDiscord.ShowcaseVisit the YouTube Playlist(if you'd like to add a video, please get in touch).Featurestv.v: a collection of "vera" (beings) including Move, Flock, Slime and Swarm, with more being continuously added. Vera can be combined and composed in various ways.tv.p: extensible particle system. Particles are divided into multiple species, where each species has a unique relationship with every other species, including itselftv.s: n-dimensional state structures that can be used by "vera", including built-in OSC and IML creation (see below).tv.px: drawing library including various shapes and blend modes, styled similarly to p5.js etc.tv.osc: Open Sound Control (OSC) viaiipyper, including automated export of OSC schemas to JSON, XML, Pure Data (Pd), Max/MSP (SuperCollider TBC).tv.iml: Interactive Machine Learning viaanguilla.tv.ti: Taichi-based simulation and rendering engine. Can be run "headless" (without graphics).tv.cv: computer vision integration based on OpenCV and Mediapipe.ExamplesExamples can be found atiil-examples/tolvera.
When run as a script, Tölvera program looks like this:fromtolveraimportTolvera,rundefmain(**kwargs):tv=Tolvera(**kwargs)@tv.renderdef_():returntv.pxif__name__=='__main__':run(main)InstallTaichisupports numerous operating systems and backends.
If you plan on using Vulkan for graphics (recommended for macOS), you may need toinstall the Vulkan SDKfirst and restart your machine.Tölvera isregistered on PyPIand can be installed via a Python package manager such aspip:pipinstalltolveraDevelopFork/clone this repository and install the package withpoetry:gitclonehttps://github.com/Intelligent-Instruments-Lab/tolvera# (or clone your own fork)cdtolvera
poetryinstallContributeWe welcomePull Requestsacross all areas of the project:AddressingIssuesAdding features (seeIssuesandDiscussion)ExamplesTestsDocumentationCommunityTo discuss Tölvera with developers and other users:Use GitHubIssuesto report bugs and make specific feature requests.Use GitHubDiscussionsto share ideas and ask questions.UseDiscordfor further support, sharing your work, and general chat.Across the project, we follow theBerlin Code of Conduct.
Please get in touch if you experience or witness any conduct issues.RoadmapSeeDiscussion.CitingTölvera is being written about and used in a number of contexts (seereferences.bib), here are a few recent examples:@inproceedings{armitageAgentialScoresExploring2023,Address={Boston, Massachusetts, USA},Author={ Jack Armitage and Thor Magnusson },Title={Agential Scores: Artificial Life for Emergent, Self-Organising and Entangled Music Notation},Booktitle={Proceedings of the International Conference on Technologies for Music Notation and Representation -- TENOR'2023},Pages={51 - 61},Year={2023},Editor={Anthony Paul De Ritis and Victor Zappi and Jeremy Van Buskirk and John Mallia},Publisher={Northeastern University},ISBN={978-0-6481592-7-8}}@inproceedings{armitageStrengjavera2023,title={Strengjavera},booktitle={{{AI Music Creativity}} 2023},author={Armitage, Jack},year={2023},address={{University of Sussex, Brighton, UK}},doi={10.5281/zenodo.8329855},ISBN={978-0-9957862-9-5},url={https://zenodo.org/records/8329855}}InspirationSwissGLLeniaParticle Life (attributed to various, see for exampleClusters)Journey to the MicrocosmosComplexity ExplorablesContacttolverais developed by theIntelligent Instruments Lab. Get in touch tocollaborate:◦iil.is◦Facebook◦Instagram◦X (Twitter)◦YouTube◦Discord◦GitHub◦LinkedIn◦Email◦FundingThe Intelligent Instruments project (INTENT) is funded by the European Research Council (ERC) under the European Union’s Horizon 2020 research and innovation programme (Grant agreement No. 101001848).