AI Coding Godot

AI Coding Godot — independent reviews, comparisons, pricing and step-by-step guides on Aizhi.

  • Ulead MediaStudio Pro

    Ulead MediaStudio Pro

    Ulead MediaStudio Pro (MSP) is real-time, timeline based prosumer level video editing software by Ulead Systems. It is a suite of 5 digital video and audio applications, including: Video Capture, Video Paint, CG Infinity, Audio Editor and Video Editor. MSP is only available on the Windows platform. Since version 8.0, CG Infinity and Video Paint are separate from the MSP suite, and are being sold as a combination product called VideoGraphics Lab (VGL). On June 18, 2008, Corel formally announced that MediaStudio Pro would be discontinued. The final MediaStudio Pro version was 8.10.0039 (Pro 8 Service Pack 1) released June 2, 2006. Corel discontinued support for MediaStudio Pro in June 2009. Version 6.0 is last version to support Windows 95, although recent versions are not compatible with Windows Vista or Windows 7. == Modules == There are 5 stand-alone modules in MSP before version 8.0, they are: Video Capture – The video capturing module in MSP. Video Paint – A frame-by-frame editor which can let user to make some image or hand-drawing effects on video frames. CG Infinity – A vector-based video editing tool which allows user to create logo animation or vector graphics on video frames. Audio Editor – The audio editing tool in MSP. It can utilize DirectX audio filters and Ulead audio filters to do audio effect processing. Video Editor – The module that users do video editing with audio/video effects. It can also utilize DirectX audio filters and 3rd party video filters to do the video editing. Since version 8.0, CG Infinity and Video Paint have been separated from the MSP suite and are being sold as a combination product called VideoGraphics Lab (VGL). == Editions == Ulead MediaStudio Pro had several editions before version 7.0. They are: Full edition: this edition includes all 5 modules. Director's Cut edition: this edition has 3 modules including Video Capture, Video Editor and Audio Editor. SE edition: SE means Simple Edition or Special Edition and is an OEM bundle version. It also includes the 3 modules as Director's Cut, however, is feature limited. Sometimes it will be given freely in video magazines. After version 7.0 only Full edition is available in the MSP suite. On June 18, 2008, Corel formally announced that MediaStudio Pro would be discontinued. == Release history ==

    Read more →
  • John M. Jumper

    John M. Jumper

    John Michael Jumper (born 1 January 1985) is an American chemist and computer scientist. Jumper and Demis Hassabis were awarded the 2024 Nobel Prize in Chemistry for protein structure prediction. As of 2025 Jumper serves as director at Google DeepMind. Jumper and his colleagues created AlphaFold, an artificial intelligence (AI) model to predict protein structures from their amino acid sequence with high accuracy. The AlphaFold team had released 214 million protein structures as of January 2024. The scientific journal Nature included Jumper as one of the ten "people who mattered" in science in their annual listing of Nature's 10 in 2021. == Education == Jumper graduated from Pulaski Academy in 2003. He received a Bachelor of Science with majors in physics and mathematics from Vanderbilt University in 2007, a Master of Philosophy in theoretical condensed matter physics from the University of Cambridge where he was a student of St Edmund's College, Cambridge in 2010 on a Marshall Scholarship, a Master of Science in theoretical chemistry from the University of Chicago in 2012, and a Doctor of Philosophy in theoretical chemistry from the University of Chicago in 2017. His doctoral advisors at the University of Chicago were Tobin R. Sosnick and Karl Freed. == Career and research == Jumper's research investigates algorithms for protein structure prediction. === AlphaFold === AlphaFold is a deep learning algorithm developed by Jumper and his team at DeepMind, a research lab acquired by Google's parent company Alphabet Inc. It is an artificial intelligence program which performs predictions of protein structure. === Awards and honors === In November 2020, AlphaFold was named the winner of the 14th Critical Assessment of Structure Prediction (CASP) competition. This international competition benchmarks algorithms to determine which one can best predict the 3D structure of proteins. AlphaFold won the competition, outperforming other algorithms scoring above 90 for around two-thirds of the proteins in CASP's global distance test (GDT), a test that measures the degree to which a computational program predicted structure is similar to the lab experiment determined structure, with 100 being a complete match, within the distance cutoff used for calculating GDT. In 2021, Jumper was awarded the BBVA Foundation Frontiers of Knowledge Award in the category "Biology and Biomedicine". In 2022 Jumper received the Wiley Prize in Biomedical Sciences and for 2023 the Breakthrough Prize in Life Sciences for developing AlphaFold, which accurately predicts the structure of a protein. In 2023 he was awarded the Canada Gairdner International Award and the Albert Lasker Award for Basic Medical Research. In 2024, Jumper and Demis Hassabis shared half of the Nobel Prize in Chemistry for their protein folding predictions, the other half went to David Baker for computational protein design. In 2025, Jumper received the Golden Plate Award of the American Academy of Achievement and the Marshall Medal of the Marshall Aid Commemoration Commission. He was elected a Fellow of the Royal Society (FRS) that same year. In 2026, he was elected a member of the National Academy of Engineering.

    Read more →
  • Computational creativity

    Computational creativity

    Computational creativity (also known as artificial creativity, mechanical creativity, creative computing or creative computation) is a multidisciplinary endeavour that is located at the intersection of the fields of artificial intelligence, cognitive psychology, philosophy, and the arts (e.g., computational art as part of computational culture). Is the application of computer systems to emulate human-like creative processes, facilitating the generation of artistic and design outputs that mimic innovation and originality. The goal of computational creativity is to model, simulate or replicate creativity using a computer, to achieve one of several ends: To construct a program or computer capable of human-level creativity. To better understand human creativity and to formulate an algorithmic perspective on creative behavior in humans. To design programs that can enhance human creativity without necessarily being creative themselves. The field of computational creativity concerns itself with theoretical and practical issues in the study of creativity. Theoretical work on the nature and proper definition of creativity is performed in parallel with practical work on the implementation of systems that exhibit creativity, with one strand of work informing the other. The applied form of computational creativity is known as media synthesis. == Theoretical issues == Theoretical approaches concern the essence of creativity. Especially, under what circumstances it is possible to call the model a "creative" if eminent creativity is about rule-breaking or the disavowal of convention. This is a variant of Ada Lovelace's objection to machine intelligence, as recapitulated by modern theorists such as Teresa Amabile. If a machine can do only what it was programmed to do, how can its behavior ever be called creative? Indeed, not all computer theorists would agree with the premise that computers can only do what they are programmed to do—a key point in favor of computational creativity. == Defining creativity in computational terms == Because no single perspective or definition seems to offer a complete picture of creativity, the AI researchers Newell, Shaw and Simon developed the combination of novelty and usefulness into the cornerstone of a multi-pronged view of creativity, one that uses the following four criteria to categorize a given answer or solution as creative: The answer is novel and useful (either for the individual or for society) The answer demands that we reject ideas we had previously accepted The answer results from intense motivation and persistence The answer comes from clarifying a problem that was originally vague Margaret Boden focused on the first two of these criteria, arguing instead that creativity (at least when asking whether computers could be creative) should be defined as "the ability to come up with ideas or artifacts that are new, surprising, and valuable". Mihaly Csikszentmihalyi argued that creativity had to be considered instead in a social context, and his DIFI (Domain-Individual-Field Interaction) framework has since strongly influenced the field. In DIFI, an individual produces works whose novelty and value are assessed by the field—other people in society—providing feedback and ultimately adding the work, now deemed creative, to the domain of societal works from which an individual might be later influenced. Whereas the above reflects a top-down approach to computational creativity, an alternative thread has developed among bottom-up computational psychologists involved in artificial neural network research. During the late 1980s and early 1990s, for example, such generative neural systems were driven by genetic algorithms. Experiments involving recurrent nets were successful in hybridizing simple musical melodies and predicting listener expectations. == Historical evolution of computational creativity == The use computational processes to generate creative artifacts has been present from early times in history. During the late 1800's, methods for composing music combinatorily were explored, involving prominent figures like Mozart, Bach, Haydn, and Kiernberger. This approach extended to analytical endeavors as early as 1934, where simple mechanical models were built to explore mathematical problem solving. Professional interest in the creative aspect of computation also was commonly addressed in early discussions of artificial intelligence. The 1956 Dartmouth Conference, listed creativity, invention, and discovery as key goals for artificial intelligence. As the development of computers allowed systems of greater complexity, the 1970's and 1980's saw invention of early systems that modelled creativity using symbolic or rule-based approaches. The field of creative storytelling investigated several such models. Meehan's TALE-SPIN (1977) generated narratives through simulation of character goals and decision trees. Dehn's AUTHOR (1981) approached generation by simulating an author's process for crafting a story. Beyond narrative generation, computational creativity expanded into artistic and scientific domains. Artistic image generation was one of the disciplines that saw early potential in generated artifacts through computational creativity. One of the most prominent examples was Harold Cohen's AARON, which produced art through composition and adaptation of figures based on a large set of symbolic rules and heuristics for visual composition. Some systems also tackled creativity in scientific endeavors. BACON was said to rediscover natural laws like Boyle's Law and Kepler's law through hypothesis testing in constrained spaces. By the 1990's the modeling techniques became more adaptive, attempting to implement cognitive creative rules for generation. Turner's MINSTREL (1993) introduced TRAMs (Transform Recall Adapt Methods) to simulate creative re-use of prior material for generative storytelling. Meanwhile, Pérez y Pérez's MEXICA (1999) modeled the creative writing process using cycles of engagement and reflection. As systems increasingly incorporated models of internal evaluation, another approach that emerged was that of combining symbolic generation with domain-specific evaluation metrics, modeling generative and selective steps to creativity In the field of generational humor, the JAPE system (1994) generated pun-based riddles using Prolog and WordNet, applying symbolic pattern-matching rules and a large lexical database (WordNet) to compose riddles involving wordplay. WordNet is a system developed by George Miller and his team at Princeton, its platform and inspired word-mapping structures have been used as the backbone of several syntactic and semantic AI programs. A notable system for music generation was David Cope's EMI (Experiments in Musical Intelligence) or Emmy, which was trained in the styles of artists like Bach, Beethoven, or Chopin and generated novel pieces in their style through pattern abstraction and recomposition. In the 2000s and beyond, machine learning began influencing creative system design. Researchers such as Mihalcea and Strapparava trained classifiers to distinguish humorous from non-humorous text, using stylistic and semantic features. Meanwhile custom computational approaches led to chess systems like Deep Blue generating quasi-creative gameplay strategies through search algorithms and parallel processing constrained by specific rules and patterns for evaluation. The institutional development of computational creativity grew along its technical advances. Dedicated workshops such as the IJWCC emerged in the 1990s, growing out of interdisciplinary conferences focused on AI and creativity. By the early 2000s, the field coalesced around annual conferences like the International Conference on Computational Creativity (ICCC). Recently, with the advent of Deep Learning, Transformers, and further refinement in Machine Learning structures, computational creativity's implementation space has new tools for development. == Machine learning for computational creativity == While traditional computational approaches to creativity rely on the explicit formulation of prescriptions by developers and a certain degree of randomness in computer programs, machine learning methods allow computer programs to learn on heuristics from input data enabling creative capacities within the computer programs. Especially, deep artificial neural networks allow to learn patterns from input data that allow for the non-linear generation of creative artefacts. Before 1989, artificial neural networks have been used to model certain aspects of creativity. Peter Todd (1989) first trained a neural network to reproduce musical melodies from a training set of musical pieces. Then he used a change algorithm to modify the network's input parameters. The network was able to randomly generate new music in a highly uncontrolled manner. In 1992, Todd extended this work, using the so-called distal teacher approach that had been d

    Read more →
  • Andrej Karpathy

    Andrej Karpathy

    Andrej Karpathy (born 23 October 1986) is a Slovak-Canadian AI researcher, who co-founded and formerly worked at OpenAI, where he specialized in deep learning and computer vision. He also worked as the director of artificial intelligence and Autopilot Vision at Tesla, and in 2024 he founded Eureka Labs, an AI education platform. In 2026 he joined Anthropic as part of the pretraining team. == Education and early life == Karpathy was born in Bratislava, Czechoslovakia (now Slovakia), and moved with his family to Toronto when he was 15. He completed his Computer Science and Physics bachelor's degrees at University of Toronto in 2009 and his master's degree at University of British Columbia in 2011, where he worked on physically simulated figures (for example, a simulated runner or a simulated person in a crowd) with his adviser Michiel van de Panne. In 2006, Karpathy began posting videos on YouTube on his channel, badmephisto. He garnered fame by posting Rubik's cube tutorials which have been used by famous speedcubers such as Feliks Zemdegs. The channel has over 9 million views as of June 2025. Karpathy received a PhD from Stanford University in 2015 under the supervision of Fei-Fei Li, focusing on the intersection of natural language processing and computer vision, and deep learning models suited for this task. == Career and research == He authored and was the primary instructor of the first deep learning course at Stanford, CS 231n: Convolutional Neural Networks for Visual Recognition. The course became one of the largest classes at Stanford, growing from 150 students in 2015 to 750 in 2017. Karpathy is a founding member of the artificial intelligence research group OpenAI, where he was a research scientist from 2015 to 2017. In June 2017 he became Tesla's director of artificial intelligence and reported to Elon Musk. He was named one of MIT Technology Review's Innovators Under 35 for 2020. After taking a several-months-long sabbatical from Tesla, he announced he was leaving the company in July 2022. As of February 2023, he makes YouTube videos on how to create artificial neural networks. On February 9, 2023, Karpathy announced he was returning to OpenAI. A year later on February 13, 2024, an OpenAI spokesperson confirmed that Karpathy had left OpenAI. In the same year, he was named one of Time Magazine's 100 Most Influential People in AI. On July 16, 2024, Karpathy announced on his X account that he started a new AI education company called Eureka Labs. Their first product was the AI course, LLM101n. He also has a broader educational effort, the "Zero to Hero" series on LLM fundamentals. The company also advocates for AI teaching assistants, a concept which has been criticized due to data privacy concerns and the removal of personal connection between teacher and student. In February 2025, Karpathy coined the term vibe coding to describe how AI tools allow hobbyists to construct apps and websites just by typing prompts. On May 19, 2026, he announced that he joined Anthropic via a statement on X, while the company stated that he will be leading a team for research in pretraining.

    Read more →
  • Confusion network

    Confusion network

    A confusion network (sometimes called a word confusion network or informally known as a sausage) is a natural language processing method that combines outputs from multiple automatic speech recognition or machine translation systems. Confusion networks are simple linear directed acyclic graphs with the property that each a path from the start node to the end node goes through all the other nodes. The set of words represented by edges between two nodes is called a confusion set. In machine translation, the defining characteristic of confusion networks is that they allow multiple ambiguous inputs, deferring committal translation decisions until later stages of processing. This approach is used in the open source machine translation software Moses and the proprietary translation API in IBM Bluemix Watson.

    Read more →
  • Agent Communications Language

    Agent Communications Language

    Agent Communication Language (ACL) consists of computer communication protocols that are intended for AI agents to communicate with each other. In 2007, protocols of this nature were proposed which include: FIPA-ACL (by the Foundation for Intelligent Physical Agents, a standardization consortium) KQML (Knowledge Query and Manipulation Language) After the surge in Generative AI with the use of Transformers and Large language models, the definition of agent has shifted away from physical agents to signify software systems built using the principles of Agentic AI. A new protocol to emerge in this area is Natural Language Interaction Protocol (NLIP). NLIP is an application-level communication protocol defined between AI Agents or between a human and an AI agent. Ecma International; a standards body which develops and publishes international standards for the information and communication industry; published on 10 December 2025 five new standards and one technical report defining the Natural Language Interaction Protocol (NLIP). As a result, we can define agent communication protocols into two categories: ontology based agent communication protocols and generative AI based agent communication protocols. Ontology based agent communication protocols use a common ontology to be used between agents. An ontology is a part of the agent's knowledge base that describes what kind of things an agent can deal with and how they are related to each other. FIPA-ACL and KQML are examples of such protocols. These protocols rely on speech act theory developed by Searle in the 1960s and enhanced by Winograd and Flores in the 1970s. They define a set of performatives, also called Communicative Acts, and their meaning (e.g. ask-one). The content of the performative is not standardized, but varies from system to system. Implementation support of FIPA-ACL is included in FIPA-OS and Jade. Generative AI based agent communication protocols such as NLIP do not require a shared ontology among communicating agents. In its stead, they use generative AI models to translate natural language text, images, videos or other modalities of data into a local ontology. This provides for hot-extensibility where the same protocol can be used for multiple communication needs, and simplifies version control since different agents can use different versions of a shared ontology. NLIP has been designed with security considerations in mind. The specification and standards comprising NLIP are developed and maintained by Ecma Technical Community 56.

    Read more →
  • Layer (deep learning)

    Layer (deep learning)

    A layer in a deep learning model is a structure or network topology in the model's architecture, which takes information from the previous layers and then passes it to the next layer. == Layer types == The first type of layer is the Dense layer, also called the fully-connected layer, and is used for abstract representations of input data. In this layer, neurons connect to every neuron in the preceding layer. In multilayer perceptron networks, these layers are stacked together. The Convolutional layer is typically used for image analysis tasks. In this layer, the network detects edges, textures, and patterns. The outputs from this layer are then fed into a fully-connected layer for further processing. See also: CNN model. The Pooling layer is used to reduce the size of data input. The Recurrent layer is used for text processing with a memory function. Similar to the Convolutional layer, the output of recurrent layers are usually fed into a fully-connected layer for further processing. See also: RNN model. The Normalization layer adjusts the output data from previous layers to achieve a regular distribution. This results in improved scalability and model training. A Hidden layer is any of the layers in a Neural Network that aren't the input or output layers. == Differences with layers of the neocortex == There is an intrinsic difference between deep learning layering and neocortical layering: deep learning layering depends on network topology, while neocortical layering depends on intra-layers homogeneity.

    Read more →
  • ICAD (software)

    ICAD (software)

    ICAD (Corporate history: ICAD, Inc., Concentra (name change at IPO in 1995), KTI (name change in 1998), Dassault Systèmes (purchase in 2001) () is a knowledge-based engineering (KBE) system that enables users to encode design knowledge using a semantic representation that can be evaluated for Parasolid output. ICAD has an open architecture that can utilize all the power and flexibility of the underlying language. KBE, as implemented via ICAD, received a lot of attention due to the remarkable results that appeared to take little effort. ICAD allowed one example of end-user computing that in a sense is unparalleled. Most ICAD developers were degreed engineers. Systems developed by ICAD users were non-trivial and consisted of highly complicated code. In the sense of end-user computing, ICAD was the first to allow the power of a domain tool to be in the hands of the user, at the same time being open to allow extensions as identified and defined by the domain expert or subject-matter expert (SME). A COE article looked at the resulting explosion of expectations (see AI winter), which were not sustainable. However, such a bubble burst does not diminish the existence of ability that would exist were expectations and use reasonable or properly managed. == History == The original implementation of ICAD was on a Lisp machine (Symbolics). Some of the principals involved with the development were Larry Rosenfeld, Avrum Belzer, Patrick M. O'Keefe, Philip Greenspun, and David F. Place. The time frame was 1984–85. ICAD started on special-purpose Symbolics Lisp hardware and was then ported to Unix when Common Lisp became portable to general-purpose workstations. The original domain for ICAD was mechanical design with many application successes. However, ICAD has found use in other domains, such as electrical design, shape modeling, etc. An example project could be wind tunnel design or the development of a support tool for aircraft multidisciplinary design. Further examples can be found in the presentations at the annual IIUG (International ICAD Users Group) that have been published in the KTI Vault (1999 through 2002). Boeing and Airbus used ICAD extensively to develop various components in the 1990s and early 21st century. As of 2003, ICAD was featured strongly in several areas as evidenced by the Vision & Strategy Product Vision and Strategy presentation. After 2003, ICAD use diminished. At the end of 2001, the KTI Company faced financial difficulties and laid off most of its best staff. They were eventually bought out by Dassault who effectively scuppered the ICAD product. See IIUG at COE, 2003 (first meeting due to Dassault by KTI) The ICAD system was very expensive, relatively, and was in the price range of high-end systems. Market dynamics couldn't support this as there may not have been sufficient differentiating factors between ICAD and the lower-end systems (or the promises from Dassault). KTI was absorbed by Dassault Systèmes and ICAD is no longer considered the go-forward tool for knowledge-based engineering (KBE) applications by that company. Dassault Systèmes is promoting a suite of tools oriented around version 5 of their popular CATIA CAD application, with Knowledgeware the replacement for ICAD. As of 2005, things were still a bit unclear. ICAD 8.3 was delivered. The recent COE Aerospace Conference had a discussion about the futures of KBE. One issue involves the stacking of 'meta' issues within a computer model. How this is resolved, whether by more icons or the availability of an external language, remains to be seen. The Genworks GDL product (including kernel technology from the Gendl Project) is the nearest functional equivalent to ICAD currently available. == Particulars == ICAD provided a declarative language (IDL) using New Flavors (never converted to Common Lisp Object System (CLOS)) that supported a mechanism for relating parts (defpart) via a hierarchical set of relationships. Technically, the ICAD Defpart was a Lisp macro; the ICAD defpart list was a set of generic classes that can be instantiated with specific properties depending upon what was represented. This defpart list was extendible via composited parts that represented domain entities. Along with the part-subpart relations, ICAD supported generic relations via the object modeling abilities of Lisp. Example applications of ICAD range from a small collection of defparts that represents a part or component to a larger collection that represents an assembly. In terms of power, an ICAD system, when fully specified, can generate thousands of instances of parts on a major assembly design. One example of an application driving thousands of instances of parts is that of an aircraft wing – where fastener type and placement may number in the thousands, each instance requiring evaluation of several factors driving the design parameters. == Futures (KBE, etc.) == One role for ICAD may be serving as the defining prototype for KBE which would require that we know more about what occurred the past 15 years (much information is tied up behind corporate firewalls and under proprietary walls). With the rise of functional programming languages (an example is Haskell) in the markets, perhaps some of the power attributable to Lisp may be replicated.

    Read more →
  • Self-management (computer science)

    Self-management (computer science)

    Self-management is the process by which computer systems manage their own operation without human intervention. Self-management technologies are expected to pervade the next generation of network management systems. The growing complexity of modern networked computer systems is a limiting factor in their expansion. The increasing heterogeneity of corporate computer systems, the inclusion of mobile computing devices, and the combination of different networking technologies like WLAN, cellular phone networks, and mobile ad hoc networks make the conventional, manual management difficult, time-consuming, and error-prone. More recently, self-management has been suggested as a solution to increasing complexity in cloud computing. An industrial initiative towards realizing self-management is the Autonomic Computing Initiative (ACI) started by IBM in 2001. The ACI defines the following four functional areas: Self-configuration Auto-configuration of components Self-healing Automatic discovery, and correction of faults; automatically applying all necessary actions to bring system back to normal operation Self-optimization Automatic monitoring and control of resources to ensure the optimal functioning with respect to the defined requirements Self-protection Proactive identification and protection from arbitrary attacks

    Read more →
  • Shane Legg

    Shane Legg

    Shane Legg (born 1973 or 1974) is a machine learning researcher and entrepreneur. With Demis Hassabis and Mustafa Suleyman, he cofounded DeepMind Technologies (later bought by Google and now called Google DeepMind), and works there as the chief AGI scientist. He is also known for his academic work on artificial general intelligence, including his thesis supervised by Marcus Hutter. == Early life and education == Legg attended Rotorua Lakes High School in Rotorua, on New Zealand's North Island. He completed his undergraduate studies at Waikato University in 1996. Also in 1996, he obtained his MSc degree with a thesis entitled "Solomonoff Induction", with Cristian S. Calude at the University of Auckland. == Research interests == In the early 2000s, Legg re-introduced and popularized with Ben Goertzel the term "artificial general intelligence" (AGI), to describe an AI that can do practically any cognitive task a human can do. At that time, talking about AGI "would put you on the lunatic fringe". Legg is known for his concern of existential risk from AI, highlighted in 2011 in an interview on LessWrong and in 2023 he signed the statement on AI risk of extinction. == Career == Before his PhD and before cofounding DeepMind, Shane Legg worked at "a number of software development positions at private companies", including the "big data firm Adaptive Intelligence" and the startup WebMind founded by Ben Goertzel. === Research === Legg later obtained a PhD at the Dalle Molle Institute for Artificial Intelligence Research (IDSIA), a joint research institute of USI Università della Svizzera italiana and SUPSI. He worked on theoretical models of super intelligent machines (AIXI) with Marcus Hutter, and completed in 2008 his doctoral thesis entitled "Machine Super Intelligence". He then went on to complete a postdoctoral fellowship in finance at USI, and began a further fellowship at University College London's Gatsby Computational Neuroscience Unit. === DeepMind === Demis Hassabis and Shane Legg first met in 2009 at University College London, where Legg was a postdoctoral researcher. In 2010, Legg cofounded the start-up DeepMind Technologies along with Demis Hassabis and Mustafa Suleyman. DeepMind Technologies was bought in 2014 by Google. After the merge with Google Brain in 2023, the company is now known as Google DeepMind. According to a 2017 article, a significant part of his job as the chief scientist was to supervise recruitment, to decide where DeepMind should focus its efforts, and to lead DeepMind's AI safety work. As of July 2023, Legg works at Google DeepMind as the Chief AGI Scientist. == Awards and honors == Legg was awarded the $10,000 prize of the Singularity Institute for Artificial Intelligence for his PhD done in 2008. Legg was appointed Commander of the Order of the British Empire (CBE) in the 2019 Birthday Honours for services to the science and technology sector and to investment.

    Read more →
  • Unique name assumption

    Unique name assumption

    The unique name assumption is a simplifying assumption made in some ontology languages and description logics. In logics with the unique name assumption, different names always refer to different entities in the world. It was included in Ray Reiter's discussion of the closed-world assumption often tacitly included in Database Management Systems (e.g. SQL) in his 1984 article "Towards a logical reconstruction of relational database theory" (in M. L. Brodie, J. Mylopoulos, J. W. Schmidt (editors), Data Modelling in Artificial Intelligence, Database and Programming Languages, Springer, 1984, pages 191–233). The standard ontology language OWL does not make this assumption, but provides explicit constructs to express whether two names denote the same or distinct entities. owl:sameAs is the OWL property that asserts that two given names or identifiers (e.g., URIs) refer to the same individual or entity. owl:differentFrom is the OWL property that asserts that two given names or identifiers (e.g., URIs) refer to different individuals or entities.

    Read more →
  • AI Dungeon

    AI Dungeon

    AI Dungeon is a single-player/multiplayer text adventure game which uses artificial intelligence (AI) to generate content and allows players to create and share adventures and custom prompts. The game's first version was made available in May 2019, and its second version (initially called AI Dungeon 2) was released on Google Colaboratory in December 2019. It was later ported that same month to its current cross-platform web application. The AI model was then reformed in July 2020. == Gameplay == AI Dungeon is a text adventure game that uses artificial intelligence to generate random storylines in response to player-submitted stimuli. In the game, players are prompted to choose a setting for their adventure (e.g. fantasy, mystery, apocalyptic, cyberpunk, zombies), followed by other options relevant to the setting (such as character class for fantasy settings). After beginning an adventure, four main interaction methods can be chosen for the player's text input: Do: Must be followed by a verb, allowing the player to perform an action. Say: Must be followed by dialogue sentences, allowing players to communicate with other characters. Story: Can be followed by sentences describing something that happens to progress the story, or that players want the AI to know for future events. See: Must be followed by a description, allowing the player to perceive events, objects, or characters. Using this command creates an AI generated image, and does not affect gameplay. The game adapts and responds to most actions the player enters. Providing blank inputs can be used to prompt the AI to generate further content, and the game also provides players with options to undo or redo or modify recent events to improve the game's narrative. Players can also tell the AI what elements to "remember" for reference in future parts of their playthrough. === User-generated content === In addition to AI Dungeon's pre-configured settings, players can create custom "adventures" from scratch by describing the setting in text format, which the AI will then generate a setting from. These custom adventures can be published for others to play, with an interface for browsing published adventures and leaving comments under them. === Multiplayer === AI Dungeon includes a multiplayer mode in which different players each have their own character and take turns interacting with the AI within the same game session. Multiplayer supports both online play across multiple devices or local play using a shared device. The game's hosts are able to supervise the AI and modify its output. Unlike the single-player game, in which actions and stories use second person narration, multiplayer game stories are presented using third-person narration. === Worlds === AI Dungeon allows players to set their adventures within specific "Worlds" that give context to the broader environment where the adventure takes place. This feature was first released with two different worlds available for selection: Xaxas, a "world of peace and prosperity"; and Kedar, a "world of dragons, demons, and monsters". == Development == === AI Dungeon Classic (Early GPT-2) === The first version of AI Dungeon (sometimes referred to as AI Dungeon Classic) was designed and created by Nick Walton of Brigham Young University's "Perception, Control, and Cognition" deep learning laboratory in March 2019 during a hackathon. Before this, Walton had been working as an intern for several companies in the field of autonomous vehicles. This creation used an early version of the GPT-2 natural-language-generating neural network, created by OpenAI, allowing it to generate its original adventure narratives. During his first interactions with GPT-2, Walton was partly inspired by the tabletop game Dungeons & Dragons (D&D), which he had played for the first time with his family a few months earlier: I realized that there were no games available that gave you the same freedom to do anything that I found in [Dungeons & Dragons] ... You can be so creative compared to other games. This led him to wonder if an AI could function as a dungeon master. Unlike later versions of AI Dungeon, the original did not allow players to specify any action they wanted. Instead, it generated a finite list of possible actions to choose from. This first version of the game was released to the public in May 2019. It is not to be confused with another GPT-2-based adventure game, GPT Adventure, created by Northwestern University neuroscience postgraduate student Nathan Whitmore, also released on Google Colab several months after the public release of AI Dungeon. === AI Dungeon 2 (Full GPT-2) === In November 2019, a new, "full" version of GPT-2 was released by OpenAI. This new model included support for 1.5 billion parameters (which determine the accuracy with which a machine learning model can perform a task), compared with the 126 million parameter version used in the earliest stages of AI Dungeon's development. The game was recreated by Walton, leveraging this new version of the model, and temporarily rebranded as AI Dungeon 2. AI Dungeon 2's AI was given more focused training compared to its predecessor, using genre-specific text. This training material included approximately 30 megabytes of content web-scraped from chooseyourstory.com (an online community website of content inspired by interactive gamebooks, written by contributors of multiple skill levels, using logic of differing complexity) and multiple D&D rulebooks and adventures. The new version was released in December 2019 as open-source software available on GitHub. It was accessible via Google Colab, an online tool for data scientists and AI researchers that allows for free execution of code on Google-hosted machines. It could also be run locally on a PC, but in both cases, it required players to download the full model, around 5 gigabytes of data. Within days of the initial release, this mandatory download resulted in bandwidth charges of over $20,000, forcing the temporary shut-down of the game until a peer-to-peer alternative solution was established. Due to the game's sudden and explosive growth that same month, however, it became closed-source, proprietary software and was relaunched by Walton's start-up development team, Latitude (with Walton taking on the role of CTO). This relaunch constituted mobile apps for iOS and Android (built by app developer Braydon Batungbacal) on December 17. Other members of this team included Thorsten Kreutz for the game's long-term strategy and the creator's brother, Alan Walton, for hosting infrastructure. At this time, Nick Walton also established a Patreon campaign to support the game's further growth (such as the addition of multiplayer and voice support, along with longer-term plans to include music and image content) and turn the game into a commercial endeavor, which Walton felt was necessary to cover the costs of delivering a higher-quality version of the game. AI Dungeon was one of the only known commercial applications to be based upon GPT-2. Following its first announcement in December 2019, a multiplayer mode was added to the game in April 2020. Hosting a game in this mode was originally restricted to premium subscribers, although any players could join a hosted game. === Dragon model release (GPT-3) === In July 2020, the developers introduced a premium-exclusive version of the AI model, named Dragon, which uses OpenAI's API for leveraging the GPT-3 model without maintaining a local copy (released on June 11, 2020). GPT-3 was trained with 570 gigabytes of text content (approximately one trillion words, with a $12 million development cost) and can support 175 billion parameters, compared to the 40 gigabytes of training content and 1.5 billion parameters of GPT-2. The free model was also upgraded to a less-advanced version of GPT-3 and was named Griffin. Speaking shortly after this release, on the differences between GPT-2 and GPT-3, Walton stated: [GPT-3 is] one of the most powerful AI models in the world... It's just much more coherent in terms of understanding who the characters are, what they're saying, what's going on in the story and just being able to write an interesting and believable story. In the latter half of 2020, the "Worlds" feature was added to AI Dungeon, providing players with a selection of overarching worlds in which their adventures can take place. In February 2021, it was announced that AI Dungeon's developers, Latitude, had raised $3.3 million in seed funding (led by NFX, with participation from Album VC and Griffin Gaming Partners) to "build games with 'infinite' story possibilities." This funding intended to move AI content creation beyond the purely text-based nature of AI Dungeon as it existed at the time. After its announcement on August 20, a new "See" interaction mode was made available for all players and added to the game on August 30, 2022. AI Dungeon was retired from Steam on March 12, 2024. == Reception == Approximate

    Read more →
  • Non-separable wavelet

    Non-separable wavelet

    Non-separable wavelets are multi-dimensional wavelets that are not directly implemented as tensor products of wavelets on some lower-dimensional space. They have been studied since 1992. They offer a few important advantages. Notably, using non-separable filters leads to more parameters in design, and consequently better filters. The main difference, when compared to the one-dimensional wavelets, is that multi-dimensional sampling requires the use of lattices (e.g., the quincunx lattice). The wavelet filters themselves can be separable or non-separable regardless of the sampling lattice. Thus, in some cases, the non-separable wavelets can be implemented in a separable fashion. Unlike separable wavelet, the non-separable wavelets are capable of detecting structures that are not only horizontal, vertical or diagonal (show less anisotropy). == Examples == Red-black wavelets Contourlets Shearlets Directionlets Steerable pyramids Non-separable schemes for tensor-product wavelets

    Read more →
  • Tree (abstract data type)

    Tree (abstract data type)

    In computer science, a tree is a widely used abstract data type that represents a hierarchical tree structure with a set of connected nodes. Each node in the tree can be connected to many children (depending on the type of tree), but must be connected to exactly one parent, except for the root node, which has no parent (i.e., the root node as the top-most node in the tree hierarchy). These constraints mean there are no cycles or "loops" (no node can be its own ancestor), and also that each child can be treated like the root node of its own subtree, making recursion a useful technique for tree traversal. In contrast to linear data structures, many trees cannot be represented by relationships between neighboring nodes (parent and children nodes of a node under consideration, if they exist) in a single straight line (called edge or link between two adjacent nodes). Binary trees are a commonly used type, which constrain the number of children for each parent to at most two. When the order of the children is specified, this data structure corresponds to an ordered tree in graph theory. A value or pointer to other data may be associated with every node in the tree, or sometimes only with the leaf nodes, which have no children nodes. The abstract data type (ADT) can be represented in a number of ways, including a list of parents with pointers to children, a list of children with pointers to parents, or a list of nodes and a separate list of parent-child relations (a specific type of adjacency list). Representations might also be more complicated, for example using indexes or ancestor lists for performance. Trees as used in computing are similar to but can be different from mathematical constructs of trees in graph theory, trees in set theory, and trees in descriptive set theory. == Terminology == A node is a structure which may contain data and connections to other nodes, sometimes called edges or links. Each node in a tree has zero or more child nodes, which are below it in the tree (by convention, trees are drawn with descendants going downwards). A node that has a child is called the child's parent node (or superior). All nodes have exactly one parent, except the topmost root node, which has none. A node might have many ancestor nodes, such as the parent's parent. Child nodes with the same parent are sibling nodes. Typically siblings have an order, with the first one conventionally drawn on the left. Some definitions allow a tree to have no nodes at all, in which case it is called empty. An internal node (also known as an inner node, inode for short, or branch node) is any node of a tree that has child nodes. Similarly, an external node (also known as an outer node, leaf node, or terminal node) is any node that does not have child nodes. The height of a node is the length of the longest downward path to a leaf from that node. The height of the root is the height of the tree. The depth of a node is the length of the path to its root (i.e., its root path). Thus the root node has depth zero, leaf nodes have height zero, and a tree with only a single node (hence both a root and leaf) has depth and height zero. Conventionally, an empty tree (tree with no nodes, if such are allowed) has height −1. Each non-root node can be treated as the root node of its own subtree, which includes that node and all its descendants. Other terms used with trees: Neighbor Parent or child. Ancestor A node reachable by repeated proceeding from child to parent. Descendant A node reachable by repeated proceeding from parent to child. Also known as subchild. Degree For a given node, its number of children. A leaf, by definition, has degree zero. Degree of tree The degree of a tree is the maximum degree of a node in the tree. Distance The number of edges along the shortest path between two nodes. Level The level of a node is the number of edges along the unique path between it and the root node. This is the same as depth. Width The number of nodes in a level. Breadth The number of leaves. Complete tree A tree with every level filled, except the last. Forest A set of one or more disjoint trees. Ordered tree A rooted tree in which an ordering is specified for the children of each vertex. Size of a tree Number of nodes in the tree. == Common operations == Enumerating all the items Enumerating a section of a tree Searching for an item Adding a new item at a certain position on the tree Deleting an item Pruning: Removing a whole section of a tree Grafting: Adding a whole section to a tree Finding the root for any node Finding the lowest common ancestor of two nodes === Traversal and search methods === Stepping through the items of a tree, by means of the connections between parents and children, is called walking the tree, and the action is a walk of the tree. Often, an operation might be performed when a pointer arrives at a particular node. A walk in which each parent node is traversed before its children is called a pre-order walk; a walk in which the children are traversed before their respective parents are traversed is called a post-order walk; a walk in which a node's left subtree, then the node itself, and finally its right subtree are traversed is called an in-order traversal. (This last scenario, referring to exactly two subtrees, a left subtree and a right subtree, assumes specifically a binary tree.) A level-order walk effectively performs a breadth-first search over the entirety of a tree; nodes are traversed level by level, where the root node is visited first, followed by its direct child nodes and their siblings, followed by its grandchild nodes and their siblings, etc., until all nodes in the tree have been traversed. == Representations == There are many different ways to represent trees. In working memory, nodes are typically dynamically allocated records with pointers to their children, their parents, or both, as well as any associated data. If of a fixed size, the nodes might be stored in a list. Nodes and relationships between nodes might be stored in a separate special type of adjacency list. In relational databases, nodes are typically represented as table rows, with indexed row IDs facilitating pointers between parents and children. Nodes can also be stored as items in an array, with relationships between them determined by their positions in the array (as in a binary heap). A binary tree can be implemented as a list of lists: the head of a list (the value of the first term) is the left child (subtree), while the tail (the list of second and subsequent terms) is the right child (subtree). This can be modified to allow values as well, as in Lisp S-expressions, where the head (value of first term) is the value of the node, the head of the tail (value of second term) is the left child, and the tail of the tail (list of third and subsequent terms) is the right child. Ordered trees can be naturally encoded by finite sequences, for example with natural numbers. == Examples of trees and non-trees == == Type theory == As an abstract data type, the abstract tree type T with values of some type E is defined, using the abstract forest type F (list of trees), by the functions: value: T → E children: T → F nil: () → F node: E × F → T with the axioms: value(node(e, f)) = e children(node(e, f)) = f In terms of type theory, a tree is an inductive type defined by the constructors nil (empty forest) and node (tree with root node with given value and children). == Mathematical terminology == Viewed as a whole, a tree data structure is an ordered tree, generally with values attached to each node. Concretely, it is (if required to be non-empty): A rooted tree with the "away from root" direction (a more narrow term is an "arborescence"), meaning: A directed graph, whose underlying undirected graph is a tree (any two vertices are connected by exactly one simple path), with a distinguished root (one vertex is designated as the root), which determines the direction on the edges (arrows point away from the root; given an edge, the node that the edge points from is called the parent and the node that the edge points to is called the child), together with: an ordering on the child nodes of a given node, and a value (of some data type) at each node. Often trees have a fixed (more properly, bounded) branching factor (outdegree), particularly always having two child nodes (possibly empty, hence at most two non-empty child nodes), hence a "binary tree". Allowing empty trees makes some definitions simpler, some more complicated: a rooted tree must be non-empty, hence if empty trees are allowed the above definition instead becomes "an empty tree or a rooted tree such that ...". On the other hand, empty trees simplify defining fixed branching factor: with empty trees allowed, a binary tree is a tree such that every node has exactly two children, each of which is a tree (possibly empty). == Applications == Trees are commonly used to represent or manipulate hierarchical data in ap

    Read more →
  • Planner (programming language)

    Planner (programming language)

    Planner (often seen in publications as "PLANNER" although it is not an acronym) is a programming language designed by Carl Hewitt at MIT, and first published in 1969. First, subsets such as Micro-Planner and Pico-Planner were implemented, and then essentially the whole language was implemented as Popler by Julian Davies at the University of Edinburgh in the POP-2 programming language. Derivations such as QA4, Conniver, QLISP and Ether (see scientific community metaphor) were important tools in artificial intelligence research in the 1970s, which influenced commercial developments such as Knowledge Engineering Environment (KEE) and Automated Reasoning Tool (ART). == Procedural approach versus logical approach == The two major paradigms for constructing semantic software systems were procedural and logical. The procedural paradigm was epitomized by Lisp which featured recursive procedures that operated on list structures. The logical paradigm was epitomized by uniform proof procedure resolution-based derivation (proof) finders. According to the logical paradigm it was “cheating” to incorporate procedural knowledge. == Procedural embedding of knowledge == Planner was invented for the purposes of the procedural embedding of knowledge and was a rejection of the resolution uniform proof procedure paradigm, which Converted everything to clausal form. Converting all information to clausal form is problematic because it hides the underlying structure of the information. Then used resolution to attempt to obtain a proof by contradiction by adding the clausal form of the negation of the theorem to be proved. Using only resolution as the rule of inference is problematical because it hides the underlying structure of proofs. Also, using proof by contradiction is problematical because the axiomatizations of all practical domains of knowledge are inconsistent in practice. Planner was a kind of hybrid between the procedural and logical paradigms because it combined programmability with logical reasoning. Planner featured a procedural interpretation of logical sentences where an implication of the form (P implies Q) can be procedurally interpreted in the following ways using pattern-directed invocation: Forward chaining (antecedently): If assert P, assert Q If assert not Q, assert not P Backward chaining (consequently) If goal Q, goal P If goal not P, goal not Q In this respect, the development of Planner was influenced by natural deductive logical systems (especially the one by Frederic Fitch [1952]). == Micro-planner implementation == A subset called Micro-Planner was implemented by Gerry Sussman, Eugene Charniak and Terry Winograd and was used in Winograd's natural-language understanding program SHRDLU, Eugene Charniak's story understanding work, Thorne McCarty's work on legal reasoning, and some other projects. This generated a great deal of excitement in the field of AI. It also generated controversy because it proposed an alternative to the logic approach that had been one of the mainstay paradigms for AI. At SRI International, Jeff Rulifson, Jan Derksen, and Richard Waldinger developed QA4 which built on the constructs in Planner and introduced a context mechanism to provide modularity for expressions in the database. Earl Sacerdoti and Rene Reboh developed QLISP, an extension of QA4 embedded in INTERLISP, providing Planner-like reasoning embedded in a procedural language and developed in its rich programming environment. QLISP was used by Richard Waldinger and Karl Levitt for program verification, by Earl Sacerdoti for planning and execution monitoring, by Jean-Claude Latombe for computer-aided design, by Nachum Dershowitz for program synthesis, by Richard Fikes for deductive retrieval, and by Steven Coles for an early expert system that guided use of an econometric model. Computers were expensive. They had only a single slow processor and their memories were very small by comparison with today. So Planner adopted some efficiency expedients including the following: Backtracking was adopted to economize on the use of time and storage by working on and storing only one possibility at a time in exploring alternatives. A unique name assumption was adopted to save space and time by assuming that different names referred to different objects. For example, names like Peking (previous PRC capital name) and Beijing (current PRC capital transliteration) were assumed to refer to different objects. A closed-world assumption could be implemented by conditionally testing whether an attempt to prove a goal exhaustively failed. Later this capability was given the misleading name "negation as failure" because for a goal G it was possible to say: "if attempting to achieve G exhaustively fails then assert (Not G)." == The genesis of Prolog == Gerry Sussman, Eugene Charniak, Seymour Papert and Terry Winograd visited the University of Edinburgh in 1971, spreading the news about Micro-Planner and SHRDLU and casting doubt on the resolution uniform proof procedure approach that had been the mainstay of the Edinburgh Logicists. At the University of Edinburgh, Bruce Anderson implemented a subset of Micro-Planner called PICO-PLANNER, and Julian Davies (1973) implemented essentially all of Planner. According to Donald MacKenzie, Pat Hayes recalled the impact of a visit from Papert to Edinburgh, which had become the "heart of artificial intelligence's Logicland," according to Papert's MIT colleague, Carl Hewitt. Papert eloquently voiced his critique of the resolution approach dominant at Edinburgh "…and at least one person upped sticks and left because of Papert." The above developments generated tension among the Logicists at Edinburgh. These tensions were exacerbated when the UK Science Research Council commissioned Sir James Lighthill to write a report on the AI research situation in the UK. The resulting report [Lighthill 1973; McCarthy 1973] was highly critical although SHRDLU was favorably mentioned. Pat Hayes visited Stanford where he learned about Planner. When he returned to Edinburgh, he tried to influence his friend Bob Kowalski to take Planner into account in their joint work on automated theorem proving. "Resolution theorem-proving was demoted from a hot topic to a relic of the misguided past. Bob Kowalski doggedly stuck to his faith in the potential of resolution theorem proving. He carefully studied Planner.”. Kowalski [1988] states "I can recall trying to convince Hewitt that Planner was similar to SL-resolution." But Planner was invented for the purposes of the procedural embedding of knowledge and was a rejection of the resolution uniform proof procedure paradigm. Colmerauer and Roussel recalled their reaction to learning about Planner in the following way: "While attending an IJCAI convention in September ‘71 with Jean Trudel, we met Robert Kowalski again and heard a lecture by Terry Winograd on natural language processing. The fact that he did not use a unified formalism left us puzzled. It was at this time that we learned of the existence of Carl Hewitt’s programming language, Planner. The lack of formalization of this language, our ignorance of Lisp and, above all, the fact that we were absolutely devoted to logic meant that this work had little influence on our later research." In the fall of 1972, Philippe Roussel implemented a language called Prolog (an abbreviation for PROgrammation en LOGique – French for "programming in logic"). Prolog programs are generically of the following form (which is a special case of the backward-chaining in Planner): When goal Q, goal P1 and ... and goal Pn Prolog duplicated the following aspects of Micro-Planner: Pattern directed invocation of procedures from goals (i.e. backward chaining) An indexed data base of pattern-directed procedures and ground sentences. Giving up on the completeness paradigm that had characterized previous work on theorem proving and replacing it with the programming language procedural embedding of knowledge paradigm. Prolog also duplicated the following capabilities of Micro-Planner which were pragmatically useful for the computers of the era because they saved space and time: Backtracking control structure Unique Name Assumption by which different names are assumed to refer to distinct entities, e.g., Peking and Beijing are assumed to be different. Reification of Failure. The way that Planner established that something was provable was to successfully attempt it as a goal and the way that it establish that something was unprovable was to attempt it as a goal and explicitly fail. Of course the other possibility is that the attempt to prove the goal runs forever and never returns any value. Planner also had a (not expression) construct which succeeded if expression failed, which gave rise to the “Negation as Failure” terminology in Planner. Use of the Unique Name Assumption and Negation as Failure became more questionable when attention turned to Open Systems. The following capabiliti

    Read more →