Code Monkey home page Code Monkey logo

simoji's Introduction

<meta charset="utf-8"></meta>
<title>Simoji - Write simulations with Emojis</title>
<script>/* This HTML was generated by πŸ“œ Scroll v68.0.0. http://scroll.pub */</script>
<style>@media print {.doNotPrint {display: none !important;}}</style>
<link rel="canonical" href="https://simoji.treenotation.org/readme.html"></link>
<meta charset="iso-8859-1"></meta>
<meta name="viewport" content="width=device-width,initial-scale=1"></meta>
<meta name="description" content="Design quick simulations with Emojis"></meta>
<meta name="generator" content="Scroll v68.0.0"></meta>
<meta property="og:title" content="Simoji - Write simulations with Emojis"></meta>
<meta property="og:description" content="Design quick simulations with Emojis"></meta>
<meta property="og:image" content=""></meta>
<meta name="twitter:card" content="summary_large_image"></meta>

<style>html,body,div,span,h1,h2,h3,h4,p,ol,ul,li,table,figure {
  margin: 0;
  padding: 0;
  border: 0;
  vertical-align: baseline;
  border-spacing: 0;
}
li {
  list-style-position: inside;
  margin-top: .4em;
  line-height: 1.2em;
}
a {
  text-decoration-color: transparent;
}
a:hover {
  text-decoration-color: initial;
}
sup,sub {
  vertical-align: baseline;
  position: relative;
  top: -0.6em;
}
sub {
  top: 0.6em;
}
html {
  padding: 4px;
  background-color: rgb(244,244,244);
  font-family: Exchange,Georgia,serif;
  color: #000;
  font-size: 14px;
  hyphens: auto;
}
p {
  margin-top: 0.4em;
  line-height: 1.4em;
}
.scrollQuote {
  break-inside: avoid;
  display: block;
  margin: .5em 0;
  padding: .5em;
  background: rgba(204,204,204,.5);
  white-space: pre-line;
  border-left: .5em solid rgba(204,204,204,.8);
}
code {
  font-size: 90%;
  background-color: rgba(204,204,204,.5);
  padding: 2px 4px;
  border-radius: 4px;
}
.scrollColumns {
  column-count: auto;
  column-fill: balance;
  column-width: 35ch;
  column-gap: 20px;
  padding-left: 20px;
  padding-right: 20px;
  margin: auto;
}
.scrollSnippetContainer {
  padding: 1ch 0;
  break-inside: avoid;
  text-align: justify;
}
.scrollTitle {
  text-align: center;
  margin-bottom: .25em;
}
.scrollTitle a {
  color: #000;
}
.scrollDateline {
  font-style: italic;
  font-size: 80%;
}
.scrollSection {
  break-inside: avoid;
}
.scrollSection h3 {
  margin-top: 1em;
  text-align: center;
}
.scrollSection h4 {
  margin-top: 1em;
  text-align: center;
}
h4.scrollQuestion {
  text-align: left;
}
.scrollNoteLink {
  opacity: .4;
}
.scrollHoverNote {
  text-decoration: underline dashed 1px rgba(0,0,0,.1);
  cursor: default;
}
.scrollCodeBlock {
  overflow: auto;
  font-size: 80%;
  hyphens: none;
  white-space: pre;
  border-left: .5em solid rgba(204,204,204,.8);
  break-inside: avoid;
  display: block;
  margin: .5em 0;
  padding: .5em;
  border-radius: 0;
  position: relative;
}
.scrollCodeBlock:hover .scrollCopyButton {
  opacity: .5;
}
.scrollCodeBlock:hover .scrollCopyButton:hover {
  opacity: .8;
}
.scrollCodeBlock:hover .scrollCopyButton:active {
  opacity: 1;
}
.scrollCopyButton {
  position: absolute;
  top: 2px;
  right: 2px;
  font-size: 14px;
  cursor: pointer;
  opacity: 0;
}
.scrollCopyButton::after {
  content: "[ ]";
}
.scrollCopiedButton::after {
  content: "[βœ“]";
}
.scrollTable {
  table-layout: fixed;
  margin: .5em 0;
  overflow: hidden;
  font-size: 80%;
  width: 100%;
  hyphens: none;
  border: 1px solid rgba(224,224,224,.8);
}
.scrollTable td,.scrollTable th {
  padding: 3px;
  overflow: hidden;
}
.scrollTable th {
  border-bottom: 2px solid rgba(0,0,0,.6);
  text-align: left;
}
.scrollTable tr:nth-child(even) {
  background: rgba(224,224,224,.6);
}
.scrollByLine {
  font-size: 12px;
  font-style: italic;
  margin: 4px 0;
  text-align: center;
}
.scrollViewSource {
  text-align: center;
  font-size: 80%;
  margin: 0;
  margin-top: 0.4em;
  line-height: 1.4em;
  margin-bottom: 1em;
}
.scrollViewSource a {
  color: #000;
}
.scrollContinueReadingLink {
  display: block;
  text-align: center;
}
.scrollCaptionedFigure {
  display: block;
  text-align: center;
}
.scrollCaptionedFigure img {
  max-width: 98%;
  height: auto;
}
.scrollCaptionedFigure figcaption {
  font-style: italic;
}
.scrollDashboard {
  width: 100%;
  font-size: 30px;
  text-align: center;
  font-weight: bold;
  break-inside: avoid;
  margin-top: 8px;
  margin-bottom: 8px;
}
.scrollDashboard td {
  width: 33.3%;
  border: 1px solid #e8e8e8;
}
.scrollDashboard span {
  font-size: 20p;;
  display: block;
}
.scrollChat span {
  font-family: Verdana;
  margin-top: 5px;
  padding: 5px 20px;
  border-radius: 15px;
  display: inline-block;
}
.scrollChatLeft {
  text-align: left;
}
.scrollChatLeft span {
  background: rgba(204,204,204, .5);
}
.scrollChatRight {
  text-align: right;
}
.scrollChatRight span {
  color: white;
  background: rgb(0,132,255);
}
.scrollYouTubeHolder {
  position: relative;
  width: 100%;
  height: 0;
  padding-bottom: 56.25%;
}
.scrollYouTubeEmbed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.gazetteHeader svg {
  width: 30px;
  height: 30px;
  fill: rgba(204,204,204,.8);
}
.gazetteHeader svg:hover {
  fill: #333;
}
.gazetteHeader a {
  color: rgba(204,204,204,.8);
  position: absolute;
  font-size: 30px;
  line-height: 27px;
  text-decoration: none;
}
.gazetteHeader a:hover {
  color: #333;
}
.gazetteHeader .gazetteTopLeftBar {
  text-align: left;
  left: 25px;
}
.gazetteHeader .gazetteTopRightBar {
  text-align: right;
  right: 25px;
}
.gazetteHeader a.gazettePrevPageLink {
  left: 3px;
}
.gazetteHeader a.gazetteNextPageLink {
  right: 3px;
}
.gazetteFooter {
  margin-top: 8px;
  padding-top: 8px;
  text-align: center;
}
.gazetteFooter svg {
  width: 30px;
  height: 30px;
  fill: rgba(204,204,204, .5);
  padding: 0 7px;
}
.gazetteFooter svg:hover {
  fill: #333;
}
.gazetteScrollLink {
  display: block;
  font-family: Verdana;
  font-weight: 100;
  margin: .5em;
  color: rgba(204,204,204,.5);
}
</style>
<div class="gazetteHeader doNotPrint">
 <a class="gazettePrevPageLink" href="releaseNotes.html"><</a>
 <a class="gazetteTopLeftBar" href="index.html"><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12.7166 3.79541C12.2835 3.49716 11.7165 3.49716 11.2834 3.79541L4.14336 8.7121C3.81027 8.94146 3.60747 9.31108 3.59247 9.70797C3.54064 11.0799 3.4857 13.4824 3.63658 15.1877C3.7504 16.4742 4.05336 18.1747 4.29944 19.4256C4.41371 20.0066 4.91937 20.4284 5.52037 20.4284H8.84433C8.98594 20.4284 9.10074 20.3111 9.10074 20.1665V15.9754C9.10074 14.9627 9.90433 14.1417 10.8956 14.1417H13.4091C14.4004 14.1417 15.204 14.9627 15.204 15.9754V20.1665C15.204 20.3111 15.3188 20.4284 15.4604 20.4284H18.4796C19.0806 20.4284 19.5863 20.0066 19.7006 19.4256C19.9466 18.1747 20.2496 16.4742 20.3634 15.1877C20.5143 13.4824 20.4594 11.0799 20.4075 9.70797C20.3925 9.31108 20.1897 8.94146 19.8566 8.7121L12.7166 3.79541ZM10.4235 2.49217C11.3764 1.83602 12.6236 1.83602 13.5765 2.49217L20.7165 7.40886C21.4457 7.91098 21.9104 8.73651 21.9448 9.64736C21.9966 11.0178 22.0564 13.5119 21.8956 15.3292C21.7738 16.7067 21.4561 18.4786 21.2089 19.7353C20.9461 21.0711 19.7924 22.0001 18.4796 22.0001H15.4604C14.4691 22.0001 13.6655 21.1791 13.6655 20.1665V15.9754C13.6655 15.8307 13.5507 15.7134 13.4091 15.7134H10.8956C10.754 15.7134 10.6392 15.8307 10.6392 15.9754V20.1665C10.6392 21.1791 9.83561 22.0001 8.84433 22.0001H5.52037C4.20761 22.0001 3.05389 21.0711 2.79113 19.7353C2.54392 18.4786 2.22624 16.7067 2.10437 15.3292C1.94358 13.5119 2.00338 11.0178 2.05515 9.64736C2.08957 8.73652 2.55427 7.91098 3.28346 7.40886L10.4235 2.49217Z"/></svg></a>
 <a class="gazetteTopRightBar" href="https://github.com/breck7/simoji"><svg xmlns="http://www.w3.org/2000/svg" width="92pt" height="92pt" viewBox="0 0 92 92"><path d="M90.156 41.965 50.036 1.848a5.913 5.913 0 0 0-8.368 0l-8.332 8.332 10.566 10.566a7.03 7.03 0 0 1 7.23 1.684 7.043 7.043 0 0 1 1.673 7.277l10.183 10.184a7.026 7.026 0 0 1 7.278 1.672 7.04 7.04 0 0 1 0 9.957 7.045 7.045 0 0 1-9.961 0 7.038 7.038 0 0 1-1.532-7.66l-9.5-9.497V59.36a7.04 7.04 0 0 1 1.86 11.29 7.04 7.04 0 0 1-9.957 0 7.04 7.04 0 0 1 0-9.958 7.034 7.034 0 0 1 2.308-1.539V33.926a7.001 7.001 0 0 1-2.308-1.535 7.049 7.049 0 0 1-1.516-7.7L29.242 14.273 1.734 41.777a5.918 5.918 0 0 0 0 8.371L41.855 90.27a5.92 5.92 0 0 0 8.368 0l39.933-39.934a5.925 5.925 0 0 0 0-8.371"/></g></svg></a>
 <a class="gazetteNextPageLink" href="cheatSheet.html">></a>
</div>

<div class="scrollSection"><h1 class="scrollTitle"><a href="readme.html">Simoji - Write simulations with Emojis</a></h1>
</div>
<div class="scrollSection"><h4 class="scrollParagraph">A work in progress.</h4>
</div>
<div class="scrollColumns" style="column-width:35ch;column-count:2;max-width:90ch;">
<div class="scrollSection"><h3 class="scrollParagraph">Documentation</h3>
<p class="scrollParagraph"><a href="./cheatSheet.html">QuickStart</a></p>
</div>
<div class="scrollSection"><h3 class="scrollParagraph">Related Work</h3>
<ul style="text-indent:0px;"><li ><a href="https://www2.econ.iastate.edu/tesfatsi/ABMSoftwareReview.AbarEtAl2017.pdf">Agent Based Modelling and Simulation tools: A review of the state-of-art software</a></li>
<li ><a href="https://en.wikipedia.org/wiki/Comparison_of_agent-based_modeling_software">Comparison of agent-based modeling software</a></li>
<li ><a href="https://www.netlogoweb.org/launch#http://www.netlogoweb.org/assets/modelslib/Sample%20Models/Biology/Flocking%20Vee%20Formations.nlogo">NetLogo</a> - 2D/3D, Web/Desktop, Open</li>
<li ><a href="https://gama-platform.github.io">GAMA</a></li>
<li ><a href="https://gama-platform.github.io/wiki/Introduction">GAML Language</a> - Desktop, OpenSource</li>
<li ><a href="https://ncase.me/sim/">EmojiSimulator</a> - After shipping I learned Nicky had a similar idea 5+ years before me and executed very well!</li>
<li ><a href="https://insightmaker.com">InsightMaker</a></li>
<li ><a href="https://www.anylogic.com">AnyLogic</a> - 2D/3D</li>
<li ><a href="https://en.wikipedia.org/wiki/SARL_language">SARL</a></li>
<li ><a href="https://www.framsticks.com/">Framsticks</a> - 3D, Desktop</li>
<li ><a href="https://hash.ai">Hash.ai</a></li>
<li ><a href="https://en.wikipedia.org/wiki/Soar_(cognitive_architecture)">SOAR</a></li>
<li ><a href="https://en.wikipedia.org/wiki/Java_Agent_Development_Framework">JADE</a></li>
<li ><a href="https://cs.gmu.edu/~eclab/projects/mason/">MASON</a></li>
<li ><a href="https://repast.github.io">REPAST</a></li>
<li ><a href="https://demonstrations.wolfram.com/SugarscapeAgentBasedModeling/">Simulations in Mathematica</a></li>
<li ><a href="https://swarm.org/wiki/Swarm_main_page">Swarm</a></li>
<li ><a href="https://www.altreva.com">Altreva</a></li>
<li ><a href="https://sandspiel.club">sandspiel</a></li>
<li ><a href="https://github.com/The-Powder-Toy/The-Powder-Toy">The-Powder-Toy</a></li></ul>
</div>
<div class="scrollSection"><h4 class="scrollParagraph">Development</h4>
<div class="scrollSection"><h4 class="scrollQuestion">What is the dev loop like?</h4>
</div></div>
<ol style="text-indent:0px;"><li >Start the dev server with <code>node server.js</code>.</li>
<li >Open <code>localhost/dev.html</code></li>
<li >Edit files</li>
<li >Refresh</li>
<li >Run tests with <code>npm test</code></li>
<li >Build distribution with <code>./build.js</code></li></ol>
<div class="scrollSection"><h4 class="scrollParagraph">Roadmap</h4>
<ul style="text-indent:0px;"><li >Run sims with 8x as many agents</li>
<li >Run 8x more sims at once</li>
<li >Write 8x more kinds of sims with the same number of words</li>
<li >Write models that are 8x less wrong</li>
<li >Generate 8x better distributables</li></ul>
</div>
<div class="scrollSection"><h3 class="scrollParagraph">❀️ Public Domain ❀️ </h3>
</div>
</div>
<div class="scrollKeyboardNav" style="display:none;"><a href="releaseNotes.html">releaseNotes.html</a> Β· readme.html Β· <a href="cheatSheet.html">cheatSheet.html</a><script>document.addEventListener('keydown', function(event) {
  if (document.activeElement !== document.body) return
  const getLinks = () => document.getElementsByClassName("scrollKeyboardNav")[0].getElementsByTagName("a")
  if (event.key === "ArrowLeft")
    getLinks()[0].click()
  else if (event.key === "ArrowRight")
].click()
 });</script></div>
</div><p class="scrollViewSource doNotPrint">
 <a href="readme.scroll">View source</a>
</p>
<div class="gazetteFooter doNotPrint">
 <a href="mailto:[email protected]"><svg viewBox="3 5 24 20" width="24" height="20" xmlns="http://www.w3.org/2000/svg"><g transform="matrix(1, 0, 0, 1, 0, -289.0625)"><path style="opacity:1;stroke:none;stroke-width:0.49999997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 5 5 C 4.2955948 5 3.6803238 5.3628126 3.3242188 5.9101562 L 14.292969 16.878906 C 14.696939 17.282876 15.303061 17.282876 15.707031 16.878906 L 26.675781 5.9101562 C 26.319676 5.3628126 25.704405 5 25 5 L 5 5 z M 3 8.4140625 L 3 23 C 3 24.108 3.892 25 5 25 L 25 25 C 26.108 25 27 24.108 27 23 L 27 8.4140625 L 17.121094 18.292969 C 15.958108 19.455959 14.041892 19.455959 12.878906 18.292969 L 3 8.4140625 z " transform="translate(0,289.0625)" id="rect4592"/></g></svg></a>
 <a href="https://github.com/breck7/simoji"><svg xmlns="http://www.w3.org/2000/svg" width="92pt" height="92pt" viewBox="0 0 92 92"><path d="M90.156 41.965 50.036 1.848a5.913 5.913 0 0 0-8.368 0l-8.332 8.332 10.566 10.566a7.03 7.03 0 0 1 7.23 1.684 7.043 7.043 0 0 1 1.673 7.277l10.183 10.184a7.026 7.026 0 0 1 7.278 1.672 7.04 7.04 0 0 1 0 9.957 7.045 7.045 0 0 1-9.961 0 7.038 7.038 0 0 1-1.532-7.66l-9.5-9.497V59.36a7.04 7.04 0 0 1 1.86 11.29 7.04 7.04 0 0 1-9.957 0 7.04 7.04 0 0 1 0-9.958 7.034 7.034 0 0 1 2.308-1.539V33.926a7.001 7.001 0 0 1-2.308-1.535 7.049 7.049 0 0 1-1.516-7.7L29.242 14.273 1.734 41.777a5.918 5.918 0 0 0 0 8.371L41.855 90.27a5.92 5.92 0 0 0 8.368 0l39.933-39.934a5.925 5.925 0 0 0 0-8.371"/></g></svg></a>
 <a href="https://scroll.pub" class="gazetteScrollLink">Built with Scroll v68.0.0</a>
</div>

simoji's People

Contributors

breck7 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

simoji's Issues

UI issues for new users

The UI looks like a web based game.

The Play button at the bottom is far far below.

The play button also does not seem to autopause when i change from buisness to moths to forest fire.

Is it intentional. because there seems to be no autopause but changing from one to another auto resets the simulation to start state.

πŸ’‘board with pan and zoom

a billion agents is still far off, but should be able to get to 1M with some code cleanup and addition of pan and zoom (LeafletJS may help)

πŸ’‘ language primitives brainstorm

[scattered notes]

one of my main questions is where this will end up between a GPL, a lisp, and a DSL.

In the end will the best language for sims really just be 80% Lisp and 20% DSL? Or will it be 80% DSL and 20% Lisp? Will vanilla JS be better? No clue. I'm making the bet that it will be 80% DSL specific to multi-agent sims, and 20% code that manipulates code (in other words, code more concerned with symbols than agents).

some ideas for primitives in the language:

🎲 .2 => allow stochasticity on any line? currently just onTick and similar have that

πŸ” 2 => allow anyline to repeat?

what are the passes/phases called?
we have dev time, compile time, runTime, pauseTime, what others are there? how do some language primitives operate depending upon the phase?

variables. when and where do we have em. what do we call em (right now we have Settings and attributes). need some thinking through

πŸ’‘ expressions for conditional probabilities

to make sims more realistic probabilities should be able to change based on situation.

for example, probability of taking a shot in basketball sim should certainly take into account distance from basket.

πŸ’‘app workspace settings

Have a concept of "workspace settings". This is just a patch to apply to the TCF App on load. Then perhaps make a general TCF component. It can reflect on a provided set of editable settings. You could have sliders. For example, edit width
of side editor with SimEditorComponent 250 88, or hide certain components. Could also be useful in Ohayo and Designer.

πŸ’‘ 10x more demos

the 10 demo buttons at the top should all point to a very simple sim.

they should all be top level categories.

when you click one, the behavior should be the same as now, but also perhaps pop a dropdown menu, each with 10 more sims, progressively more advanced.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.