Prototype: github.com/cirosantilli/Urho3D-cheat
Top Down 2D Continuous Game with Urho3D C++ SDL and Box2D for Reinforcement learning by Ciro Santilli (2018)
Source. Source code at: github.com/cirosantilli/Urho3D-cheat.Screenshot of the basketball stage of Ciro's 2D continuous game
. Source code at: github.com/cirosantilli/rl-game-2d-grid. Big kudos to game-icons.net for the sprites.Less good discrete prototype: github.com/cirosantilli/rl-game-2d-grid YouTube demo: Video 1. "Top Down 2D Continuous Game with Urho3D C++ SDL and Box2D for Reinforcement learning by Ciro Santilli (2018)".
Top Down 2D Discrete Tile Based Game with C++ SDL and Boost R-Tree for Reinforcement Learning by Ciro Santilli (2017)
Source. The goal of this project is to reach artificial general intelligence.
A few initiatives have created reasonable sets of robotics-like games for the purposes of AI development, most notably: OpenAI and DeepMind.
However, all projects so far have only created sets of unrelated games, or worse: focused on closed games designed for humans!
What is really needed is to create a single cohesive game world, designed specifically for this purpose, and with a very large number of game mechanics.
Notably, by "game mechanic" is meant "a magic aspect of the game world, which cannot be explained by object's location and inertia alone" in order to test the the missing link between continuous and discrete AI.
The question then becomes: do we have enough computational power to simulation a game worlds that is analogous enough to the real world, so that our AI algorithms will also apply to the real world?
To reduce computation requirements, it is better to focus on a 2D world at first. Such world with the right mechanics can break any AI, while still being faster to simulate than a 3D world.
The initial prototype uses the Urho3D open source game engine, and that is a reasonable project, but a raw Simple DirectMedia Layer + Box2D + OpenGL solution from scratch would be faster to develop for this use case, since Urho3D has a lot of human-gaming features that are not needed, and because 2019 Urho3D lead developers disagree with the China censored keyword attack.
Simulations such as these can be viewed as a form of synthetic data generation procedure, where the goal is to use computer worlds to reduce the costs of experiments and to improve reproducibility.
Ciro has always had a feeling that AI research in the 2020's is too unambitious. How many teams are actually aiming for AGI? When he then read Superintelligence by Nick Bostrom (2014) it said the same. AGI research has become a taboo in the early 21st century.
Related projects:
- github.com/deepmind/lab2d: 2D gridworld games, C++ with Lua bindings
Related ideas:
- www.youtube.com/watch?v=MHFrhIAj0ME?t=4183 Can't get you out of my head by Adam Curtis (2021) Part 1: Bloodshed on Wolf Mountain :)
- www.youtube.com/watch?v=EUjc1WuyPT8 AI alignment: Why It's Hard, and Where to Start by Eliezer Yudkowsky (2016)
Bibliograpy:
- agents.inf.ed.ac.uk/blog/multiagent-learning-environments/ Multi-Agent Learning Environments (2021) by Lukas Schäfer from the Autonomous agents research group of the University of Edinburgh. One of their games actually uses apples as visual represntation of rewards, exactly like Ciro's game. So funny. They also have a 2d continuous game: agents.inf.ed.ac.uk/blog/multiagent-learning-environments/#mpe
- humanoid robot simulation
- Section "AI training game"
- Section "Software-based artificial life"
OpenAI Plays Hide and Seek... and Breaks The Game! by Two Minute Papers (2019)
Source. Commentary of OpenAi's 2019 hide and seek paper. OpenAI does some similar simulations to what Ciro wants, but TODO do they publish source code for all of them? If not Ciro calls bullshit on non-reproducible research, and even worse due to the fake "Open" in the name. Does this repo contain everything?Much bigger simulation, AIs learn Phalanx by Pezzza's Work (2022)
Source. 2d agents with vision. Simple prey/predator scenario.How hard could it be? You just have to learn the encoding of the neural spine/eyes/ear, add an invasive device that multiplexes it, and then the benefits could be mind blowing.
Major projects can be seen at: Section "The most important projects done by Ciro Santilli".
These are some smaller projects that Ciro Santilli carried out. They are all either for fun, or misguided use of his time done by an younger self:
- small naughty stuff is listed at: Section "Ciro Santilli's naughty projects"
- Because Ciro cares about education, around 2014 he looked into markup languages and version control for books, before he noticed that this approach was useless and that ranking algorithms are all that matter:
- He implemented some large features and several smaller improvements.
- Markdown Style Guide
- karlcow/markdown-testsuite improvements: Ciro has implemented the test runner a few months before CommonMark left stealth mode and killed it instantaneously.At least MacFarlane was able to reuse part of the HTML normalizer he wrote, and he extracted the multi-engine comparison to: CommonMark Implementation Compare.Playing with this project has led Ciro to find and report many Markdown bugs/bad behavior on other software, e.g. GitHub and MultiMarkdown-4.
- isaacs/github public unofficial GitHub issue tracker: he has commented there so often that he was made a collaborator
- Node Express Sequelize Next.js realworld example app
- VCDVCD: value change dump command-line pretty printer!!! The type of thing that a billion dollar EDA tool vendor will never implement ;-)
0 time 1 counter_tb.clock 2 counter_tb.enable 3 counter_tb.out[1:0] 4 counter_tb.reset 5 counter_tb.top.out[1:0] 0 1 2 3 4 5 =========== 0 1 0 x 0 x 1 0 0 x 1 x 2 1 0 0 1 0 3 0 0 0 0 0 4 1 0 0 0 0 5 0 1 0 0 0
- Vim: sometimes Ciro want crazy and wasted his time with Vimscript:
- Vim Markdown: the owner
plasticboy
was really nice and made Ciro a collaborator for his contributions, notably a live ToC outline and the header mappings - Vundle Plugin Tester, which he used to start the testing system of Vim Markdown
- Vim Markdown: the owner
- Breakthrough Message: aliens!!! Creative/media project, powered by some Python scripts.
- making Google Maps reviews of places he's visited to help other people. Ciro's photos reached 1 million views in 2019: www.google.com/maps/contrib/106598607405640635523/photos (archive)
Is this exact sentence really from UNIX philosophy? en.wikipedia.org/wiki/Unix_philosophy#Do_One_Thing_and_Do_It_Well
Of course, it has precedents, e.g. jack of all trades, master of none
However, a polynomial can be defined over any other field just as well, the most notable example being that of a polynomial over a finite field.
For example, given the finite field of order 9, and with elements , we can denote polynomials over that ring aswhere is the variable name.
For example, one such polynomial could be:and another one:Note how all the coefficients are members of the finite field we chose.
Used a lot in quantum mechanics, where the equations are really hard to solve. There's even a dedicated wiki page for it: en.wikipedia.org/wiki/Perturbation_theory_(quantum_mechanics). Notably, Feynman diagrams are a way to represent perturbation calculations in quantum field theory.
Physics (like all well done science) is the art of predicting the future by modelling the world with mathematics.
Ciro Santilli doesn't know physics. He writes about it partly to start playing with some scientific content for: OurBigBook.com, partly because this stuff is just amazingly beautiful.
Ciro's main intellectual physics fetishes are to learn quantum electrodynamics (understanding the point of Lie groups being a subpart of that) and condensed matter physics.
Every science is Physics in disguise, but the number of objects in the real world is so large that we can't solve the real equations in practice.
Luckily, due to emergence, we can use uglier higher level approximations of the world to solve many problems, with the complex limits of applicability of those approximations.
Therefore, such higher level approximations are highly specialized, and given different names such as:
Unifying those two into the theory of everything one of the major goals of modern physics.
xkcd 435: Fields arranged by purity
. Source. Reductionism comes to mind.Physically accurate genie by Psychomic
. Source. This sane square composition from: www.reddit.com/r/funny/comments/u08dw3/nice_guy_genie/.Ciro once read that there are two types of mathematicians/scientists (he thinks it was comparing Einstein to some Jack of all trades polymath who didn't do any new discoveries):
- high flying birds, who know a bit of everything, feel the beauty of each field, but never dig deep in any of them
- gophers, who dig all the way down, on a single subject, until they either get the Nobel Prize, or work on the wrong problem and waste their lives
TODO long after Ciro forgot where he had read this from originally, someone later pointed him to: www.ams.org/notices/200902/rtx090200212p.pdf Birds and Frogs by Freeman Dyson (2009), which is analogous but about Birds and Frogs. So did Ciro's memory play a trick on him, or is there also a variant; of this metaphor with a gopher?
Ciro is without a doubt the bird type. Perhaps the ultimate scientist is the one who can combine both aspects in the right amount?
Ciro gets bored of things very quickly.
Once he understands the general principles, if the thing is not the next big thing, Ciro considers himself satisfied without all the nitty gritty detail, and moves on to the next attempt.
In the field of mathematics for example, Ciro is generally content with understanding cool theorem statements. More generally, one of Ciro's desires is for example to understand the significance of each physics Nobel Prize.
This is also very clear for example after Ciro achieved Linux Kernel Module Cheat: he now had the perfect setup to learn all the Linux kernel shady details but at the same time after all those years he finally felt that "he could do it, so that was enough", and soon moved to other projects.
If Ciro had become a scientist, he would write the best review papers ever, just like in the current reality he writes amazing programming tutorials on Stack Overflow.
Ciro has in his mind an overly large list of subjects that "he feels he should know the basics of", and whenever he finds something in one of those topics that he does not know enough about, he uncontrollably learns it, even if it is not the most urgent thing to be done. Or at least he puts a mention on his "list of sources" about the subject. Maybe everyone is like that. But Ciro feels that he feels this urge particularly strongly. Correspondingly, if a subject is not in that list, Ciro ignores it without thinking twice.
Ciro believes that high flying birds are the type of people better suited for venture capital investment management: you know a bit of what is hot on several fields to enough depth to decide where to place your bets and how to guide them. But you don't have the patience to actually go deeply into any one of them and deal with each individual shit that comes up.
Cosmos: A Personal Voyage (1980) episode 1 mentions as quoted by the Wikipedia page for Eratosthenes:That's Ciro.
According to an entry in the Suda (a 10th-century encyclopedia), his critics scorned him, calling him beta (the second letter of the Greek alphabet) because he always came in second in all his endeavors.
Unlisted articles are being shown, click here to show only listed articles.