The Javascript and canvas port of MarkovJunior : A Probabilistic Programming Language.

Overview

MarkovJunior.js

MarkovJunior is a probabilistic programming language where programs are combinations of rewrite rules and inference is performed via constraint propagation. MarkovJunior is named after mathematician Andrey Andreyevich Markov, who defined and studied what is now called Markov algorithms. This project is a javascript port from the original implementation to be more friendily for uses in Web Application.

The MarkovJunior.js is a port from the original MarkovJunior version. It aims to:

  • Support browser for more use in web application and gaming.
  • Provide another format of XML script for convenient use.

Live Build 🚀

Please visit this playground to see a live demo.

Note: This work is in active development and is still in its infancy. At the moment, MarkovJunior.js only supports a 2D and limited color pixel. And the following node are supported:

  • SequenceNode
  • OneNode

Read the plan for the roadmap and the contributing guide section if you are interested in developing this work together.

Getting Started

  • Please read the README.md of the original repo first for an overview of what MarkovJunior does.
  • Download the source code, and run npm install to install the dependencies.
  • Run npm run dev to start the WebPack server.

Note: MarkovJunior.js only supports basic and simple scripts for now.

Basic

Contributing ✒️

There are three major parts:

  • Interpreter: It is a interpreter and the nodes implementations you can found in Interpreter.cs and other node files such as AllNode.cs
  • Script: Helps parse and convert the XML and JSON (in the future) correctly. It is passed to the interpreter as an entrance.
  • Render: Renders the result given by interpreter. Please refer to the test for more details.

People interested in helping contribute could work on the following:

  • Inference
  • Fields
  • File and legend support
  • 3D generation
  • Other nodes support
  • A more flexible demo

Welcome to contribute together.

You might also like...

Programming language makes by hobby 3

Joule Programming language makes by hobby 3 About It's a compiled programming language written in JavaScript :/. Codes compile into Assembly code tha

Feb 17, 2022

VSCode extension for the rickroll-lang programming language (incomplete)

Rickroll-Lang VSCode Extension The Rick Roll programming language is a rickroll based, process oriented, dynamic, strong, esoteric programming languag

Oct 10, 2022

A Flow-based programming language for universal applications.

A Flow-based programming language for universal applications.

Hlang A Flow-based programming language for universal applications. Hlang aims to make programming easier, faster and more comfortable. It avoids codi

Dec 25, 2022

A programming language (WIP)

Umo programming language Concept Effect system (not implemented) Subtyping (not implemented) Opt-in shared mutability (not implemented) Gradual typing

Feb 25, 2022

One-stop Go+ programming language environment manager

One-stop Go+ programming language environment manager

InGop (Go+ language) One-stop Go+ programming language environment manager How do I learn the Go+ programming language quickly? Start with installatio

Nov 21, 2022

An enhanced VSCode extension for the Move programming language.

Move Analyzer Plus Provides language support for the Move programming language. Install on the VSCode Extension Marketplace: Move Analyzer Plus on the

Aug 12, 2022

Simple JSON parse/stringify for the Wren programming language

wren-json Simple JSON parse/stringify for the Wren programming language. Parses strict json and relaxed json Comments Unquoted keys Trailing commas St

May 18, 2022

The interpretation implementation implemented programming language built for fun. I'm currently boring in full stack web development. So, I crafted this one LoL. 👻

The interpretation implementation implemented programming language built for fun. I'm currently boring in full stack web development. So, I crafted this one LoL.  👻

What's Wuttyi? Everything is expression 👻 I just developed this tiny programming language because of boring in higher level programming construct. Mo

Dec 13, 2022

Simple Math Programming Language (SMPL) for the Web

Simple Math Programming Language (SMPL) for the Web SMPL is a math-oriented programming language that can be interpreted in the browser. Its primary u

Dec 15, 2022
Comments
  • 目前复刻到什么程度了?what is the roadmap this project

    目前复刻到什么程度了?what is the roadmap this project

    are those models code work in MarkovJunior.js Demo ? https://github.com/mxgmn/MarkovJunior/tree/main/models

    what is the different between MarkovJunior.js and MarkovJunior, in functional not language


    原版库提供的模型代码可以用么?(为什么我在demo中跑不出来预期的效果)

    目前和原版有哪些功能上的差异?

    opened by cuihee 2
  • Minor formatting

    Minor formatting

    Notable changes:

    • Minor grammar fixes in the readme
    • Added a typing to inString
    • Avoid type coercion (== & !=)
    • Change the demo to scrape the input for a single source of truth
    • Added an if to catch undefined before set frame is called
    opened by ryceg 2
  • Demo Flexibility Questions

    Demo Flexibility Questions

    I was curious about what you meant by

    A more flexible demo

    at the bottom of the README. Did you...

    • just want a better styled page?
    • syntax highlighting?
    • a different syntax to xml that can be compiled to it? (like yml, or a syntax like what Maxim used in subtitles like WBB=WAW. Could be interesting tbh)
    • maybe a drag-drop interface to move colours around in diagrams and link them together in different ways? (like the GUI that can be see in some of the images in the original repo)

    I'd love to be able to help out with any of these. Maybe adding options for each syntaxes could work for people who want to type less/don't want to learn a new language? It depends on how big of a project you'd like it to be.

    opened by Magnogen 3
  • Contributions?

    Contributions?

    Hi there, you might recognise me from the other thread. I'd love to get involved- though I am not familiar at C# so can't help with the porting over. Anything I can do to help?

    opened by ryceg 3
When a person that doesn't know how to create a programming language tries to create a programming language

Kochanowski Online Spróbuj Kochanowskiego bez konfiguracji projektu! https://mmusielik.xyz/projects/kochanowski Instalacja Stwórz nowy projekt przez n

Maciej Musielik 18 Dec 4, 2022
Typescript version of MarkovJunior, runs on the web (with pathtracer)

MarkovJuniorWeb Typescript version of MarkovJunior, runs on the web: https://yuu6883.github.io/MarkovJuniorWeb/ Everything have been implemented inclu

Yuu 81 Dec 18, 2022
Cookbook Method is the process of learning a programming language by building up a repository of small programs that implement specific programming concepts.

CookBook - Hacktoberfest Find the book you want to read next! PRESENTED BY What is CookBook? A cookbook in the programming context is collection of ti

GDSC-NITH 16 Nov 17, 2022
Write "hello world" in your native language, code "hello world" in your favorite programming language!

Hello World, All languages! ?? ?? Write "hello world" in your native language, code "hello world" in your favorite language! #hacktoberfest2022 How to

Carolina Calixto 6 Dec 13, 2022
solid material ui port (ported from blazor port)

solid-material-ui solid material ui port (porting from blazor port) In preparation for solid hack Turbo Mono-repository is used for component package

skclusive 18 Apr 30, 2022
i18n-language.js is Simple i18n language with Vanilla Javascript

i18n-language.js i18n-language.js is Simple i18n language with Vanilla Javascript Write by Hyun SHIN Demo Page: http://i18n-language.s3-website.ap-nor

Shin Hyun 21 Jul 12, 2022
Jaksel Script, Programming language very modern and Indonesian style

Jaksel Script Jaksel Script is a new programming language, very modern, easy to learn, using Indonesia-slang language. No programming experience requi

Rio Chandra 823 Jan 3, 2023
A type programming language which compiles to and interops with type-level TypeScript

Prakaar Prakaar (hindi for "type") is a type programming language which compiles to and interops with type-level TypeScript. Prakaar itself is also a

Devansh Jethmalani 17 Sep 21, 2022
⚡ Extremely fast online playground for every programming language.

Riju Riju is a very fast online playground for every programming language. In less than a second, you can start playing with a Python interpreter or c

Radon Rosborough 845 Dec 28, 2022