This page contains a summary of my research, inventions and projects†1. And it only includes the ones that are about computer science. Artworks, Music, Publications, Ideas, et cetera are not listed within this page.
1
And many toys!
Also take it to the mind that this list includes stable projects, projects under heavy development, abandoned/discontinued projects and some proprietary ones and so not all of them are accessible in the internet. If you wish to get one of these projects, contact me directly.
humane computation
2017 • DesignTalk
DesignTalk is a playground for implementing ideas of an illustration software. The idea is to play with possibilities of interface design and track how much it can improve the state of software's comfort. DesignTalk implements a a new approach of interface design where only the common tools are visual and they are all visible in the side of a selected object to minimize the interface and then every other task is given using an english like language by speaking it.
Since 1950's the syntax of regular languages are kept the same, while today we have much more computational capabilities, due to the syntax of regular expressions one cannot write a big pattern inside of it. Orchestra is a new visual language that makes it easy and safe to write scalable patterns, It both compiles to RegExp and can be compiled from RegExp which makes it easy to be used in any host language.
2016 • Orchestra Studio
Orchestra Studio is an IDE designed specially for Orchestra. It has an editor for Orchestra, Contains all the compilers used to compile and decompile Orchestra, Comes with a playground to write testing for the pattern, an offilne documentation that is integrated to the visual editor, and has extensions for other editors so that one can open a regexp from those editors in Orchestra and edit them.
Concerto is an Orchestra Decompiler that compiles Regular Expressions written in the ECMAScript Specification to Orchestra Language. It comes bundled with the Orchestra Studio.
A shading algorithm that extends the ideas and mathematics of Gouraoud Shading by giving it custom transition equations. In Gouraud Shaders colors move from one light source to the other by a linear transition, within this shader one can define custom paths and equations and therefore create much more interesting lightings.
I love macOS's Quartz technology and I use it to create creative visualizations and graphics test, it's also damn handy at connecting different graphics tools like GLSL, OpenCL, CoreImage. For what it's worth I use my graphics as personal screen savers and so there's a repository of these screen savers.
Pink is a little web playgrond that you can draw on and the ink will animate. You can play and have your notes on it. This is a toy I made with Zea to learn some processing :)
KaryScript is a programming language that compiles to JavaScript and tries to be a much more readable version of JavaScript. By bringing some of the grammars and ideas from different languages like pipes, ruby like structures, less punctuations, tables from markdown and etc. it makes the whole experience of programming much more readable.
2017 • KaryScript's Compiler
KaryScript's compiler is a JavaScript compiler bundeled to one file. It can be embedded to any kind of JavaScript runtime such as Web, Node and Rhino and compile KaryScript to ES6. It also comes with a command line interface that can act as a language server too.
An editor based on Microsoft's Monaco Editor that comes with Kary Pro Colors, KaryScript Monarch Definitions and Monaco Comment IV integrations which means it's a full featured editor for KaryScript that can be integrated to web pages.
HeatStudio is a suite of software for computing building's Heat Transfer Coefficient. It's being developed as a software for evaluating Iranian's Building Regulation (A.K.A Chapter 19) for Energy Efficiency. It has a set of tools for modeling a building, a computational engine to compute the heat transfer based on the model and a given algorithm by the Chapter 19 and a tool for investigating the results. We abandoned this software in favor of the version 2 which has a much broader set of features.
2021 • IDF19 Compiler
In Iran's Building Eneregy Regulations, a building is evaluated by comparing its energy performance to reference model of the building that instead of the real materials and conditions has the standard minimums.
IDF19 is the official compiler that I wrote for the Building and Housing Research Center of Iran that generates a referance model from the building energy design provided by the engineers. And it is used by the EAES platform of Iran to officially regulate the building eneregy design.
Pro Colors is a color scheme for code highlighting. It's designed to have a look that is pretty and feels like candy because most developer tools do not look like pretty, It's designed to have a homogenous color distribution and in such way that pretty colors are near each other. It's also designed to support as much as tokens as possible to have to most accurate coloring.
2016 • Kary Pro Colors for Visual Studio Code
Pro Colors for Visual Studio Code is a distribution of Pro Colors with Visual Studio Code's Workbench Themes supporting the color scheme. Since it's release to the Visual Studio Marketplace, Pro Colors has remained in the first page of the themes making it one of the most popular themes in Visual Studio Code.
themeX is a color scheme generator. It solves some of the major problems in composing cross-editor color schemes by defining a single file that contains tokens, color schemes, and let's the user define color variables. Using this method one can define multiple color schemes via one theme, for example a theme that has Light/Dark versions is easier to be made in themeX. themeX then compiles the theme for different editors making it easy to mailing a singular code-base.
A graph programming environment with a powerful graphing engine, powerful high-level API, mathematica notebook like interactive programming, code editor and plugin support.
Working with mathematics in computers has shown me that most people have a hard time to change the notation of math to computer language. numeraX is an experiment to find out to which extent is it possible to develop a language like math.
Octobass is a dependency execution framework for developers. It gets a dependency graph and then executes a function on each node by first evaluating the dependencies.
Workout is an experiment with the idea of dependent equations. Say A = x + 2 is a given equation, then it depends on x. Workout computes a dependency graph and then tries to compute as equations as possible.
Calculate was a fork of NCalc for Kary Framework that added a lot to its foundation. It added case-insensitivity to the parser, a few new operators and change the bitwise operators to math operators. At the end it completely removed the storage and type-caster in favor of implementing big number to the NCalc.
2015 • Numerica
Numerica was an experiment to implement Arbitrary-Precision Numerical Types for .NET on top of the Kary Framework pretty much like the GNU MP infrastructure. It could store up to 2.8 billion digits and some basic mathematical functionalities like basic arithmetics were developed for it but the experiment didn't got the performance in mind and it was abandoned.
Code Quality
2014 • Kary Coding Standard
Kary Coding Standard is a coding style designed for readablity and beauty. It has a set of rules that eliminates many of the common readability problems and also incoporates the use of Kary Comments to visually orgnize the structure of the code.
Righteous is a code formatter for CSS that implements the Kary Coding Standards. It reads the code into an AST and then completely rewrites it into KCS-proof style making it the easiest way to fully implemnet the standard.
Virtuous is a code formatter for JSON that implements the Kary Coding Standards. It reads the code into an AST and then completely rewrites it into KCS-proof style making it the easiest way to fully implemnet the standard.
Comment V is an extension for Visual Studio Code providing Kary Comments. It uses contex-aware generation of comment making it easy to just create a comment by pushing a button.
First edition of Kary Comment Generators that was designed for macOS with native technologies. It soon proved to be useful and the multi platform Comment IV was made.
Arendelle was an educational language targeting kids. It used a basic language and some simple navigational and painting instructions to create a world where kids could use programming to create 8-bit like arts and learn some basic programming concepts.
2014 • Arcade
Arcade was the first intepreter for Arendelle and supported up to version 1.16 of Arendelle. It was written in C# and could be embedded in .NET environments.
2015 • Swifty
Swifty was a Swift/Objective-C based interpreter for Arendelle that powered Arendelle for iOS and the also had a macOS command line shell. It supported Arendelle up to version 2XIV
Garda is was the stand alone context-aware autosuggestion server for Arendelle. Gerda scanned the code without parsing it in a linear way and therefore it could provide suggestions by the speed of O(n)
Marker was Arendelle's web syntax highlighter. It could generate a colored HTML from given Arendelle codes on the fly in the speed of O(n). It only supported Arendelle till version 1.18
Pabbie language was an experiment to create a language with Arendelle as it's engine that looked as Plain-English. Motivation was to bring Arendelle to the ones who didn't like it's short army-code like style.
2016 • Arendelle for Visual Studio Code
An extension to provide Arendelle language support for Visual Studio Code. This package provides syntax highlighting as well as context-aware intelliSense powered by the Gerda Core.
I was challenged by the Aurox LLC to reverse engineer TradingView's Pine Language and create a new platform capable of integrating Pine into Aurox's Terminal and alert services. The result of my work was SugarPine and Pine Forest.
2019 • SugarPine
SugarPine was a Pine Script compiler compatible with Pine V2, V3, and V4. It had a type system capable of type checking, inferring and casting the types of Pine. A compile type evaluator that could partially run the static portions of Pine, builtin dictionary and implementation of the standard library, and a system for integrating platform functions into Pine.
2019 • Pine Forest
Pine Forest was the runtime attached to the SugarPine compilations. It enabled runtime error handling, dynamic type casting, platform integrations and custom behavior inside of the TradingView's charting library that was the major compilation target for the SugarPine
Text Editors
When I started learning to program, one of my obsessions was to create an independent text editor. I tried many times but never got the result I wanted. Maybe someday I actually make an editor that I love but till that day these are the attempts I had towards that goal
2012 • Nexear
Nexear was a cross-platform text editor. It supported multiple panels for editing (things like tabs), had a GUI interface as well as an internal commanding interface and could be controlled by only typing. The interface came with many tools like an internal calculator, formatters, editing options, Arendelle toolings and could import many formats like ePub, PDF, DOC, etc to plain text.
2012 • TexTHOR & TexTHOR II
TexTHOR was my first and TexTHOR II was my second attempts to create a terminal based text editor. TexTHOR used to have inline commands, so the lines who started with -- were command lines and one could interact with the editor inline that proved to be bad and the project got abandoned.
2013 • Chatper
Chapter was the my third attempt to create a command line text editor. It used a whole new way to manage the screen and had a lots of updated algorithms and used a lots of Kary Framework power goodies but at the end it was too buggy to fix and also got abandoned.
Typography
2019 • Pacifica
Pacifica is a display type that is designed to be used in large sizes. It has a narrow feel and a set of carefully developed kernings that makes the intesity of the typeface rather interesting.
2019 • Magnifier
The idea behind this typeface was to have the feeling of a tick marker, something like the Marker Felt typeface and therefore Magnifier is a bold display type trageted for when the shape of the marker is needed.
2012 • Spacium
Designed to have a feel of future. I designed it when I was a kid and therefore it also much more amature and that gives it a certain feel so to speek.
2020 • Kerning Template Generator
This is a small tool designed to generate some good character combinations for each character so that the typeface designer can adjust the kernings of their type faces. The original idea is for this to be used with the iFontMaker on iPad.
Pageman is a basic HTML processor designed to be used alongside the Jekyll to develop this website but grown into a thing for itself. Pageman let's one use Markdown, HTML, Legend and any other language in one file as well as providing C-like comments.
A set of tools that makes it possible to use pageman as language for priting like TeX. It provides paging, and print layouts plus a watch mode server for live preview.
Legend is an extension to markdown that compiles to a very special HTML format optimized for side bar footnotes as in books. This website uses Legend for it's side notes.
Timpani is a very small language like Markdown but with only a few of Markdown's tools, designed to be parsed in O(n) time for apps in React Native and similar other platforms where computation is expensive.
In days of Kary Foundation we wanted to test our alpha proprietary software with some organizations in secret ways. Gateman implemented a safe software key foundation for us which we could lock the software on specific user machines and be sure the alpha testing units won't get released to the public.
2016 • Gateman Client
Gateman Client was a client implemented in Cocoa, WPF, Qt for macOS, Windows and Linux that could generate the main Gateman Key needed to identify a single machine. Kary Foundation's Insiders Testing members could register their machines with the key generated by the Gateman Client.
Nearley
I use Nearley parser generator which is a fantastic generator, but it didn't have much of language support and so I made a few tools to make it usable in my workflow.
2017 • Nearley for Visual Studio Code
Syntax Highlighting Support for Nearley Parser Generator Language. Supported by other Kary extensions like Comment and Kary Pro Colors.
Cozy is a web framework that is not a framework but rather a base project. It implements a Functional Reactive Programming structure with Storage, View and mid-level toolings on TypeScript. It creates a project in such way that only a TypeScript compiler be enough for compiling/bundling and minimizing the code.
Bassoon is a framework that implements an I/O infrastructure for apps in which makes it possible for them to share their data without a central server using an algorithm like IMAP on any given protocol (say a hard disk, FTP, Dropbox...)
2017 • Tambourine
Tambourine is a framework for writing musical theory software. Main goal is to have a library capable of computing musical theory so that one can write a Harmonizer Engine on top of it.
TextGraphic is an advanced graphical library and my latest attempt to create powerful graphics with textual formats. It provides layers, transparency, colors, shapes, text justification, tables and layouts, primitive shapes, ray-tracing, et cetera and for many different target platforms including ANSI Terminals, Web, and SVG.
Kary Framework —originally targeting .NET— was a String Manipulation Framework. It had tools for visually aligning, lay-outing, manipulating, and styling strings. It also had tools for creating UIs with strings and also had Terminal Widgets for creating rich Text UIs.
2019 • Kary Nota
Nota is a terminal calculator with a rich language that renders mathematical notations in beautiful ASCII art. After making Intactus, I wanted to perfect what I had made. Nota renders mathematical notations in the best way it can within the terminal and gives the user a very powerful language to express math.
Series is a game in which one has to find the formula of a series. It's made using Kary Framework and Monodraw to show the power of the textual interface creation.
Clavinet is a command line argument parser with its own language rules. It reconstructs the array of args given by the os and uses its own parser to parse it. Given that it can give command line apps abilities like arrays.
Since gamification methods are being used to keep us release dopamine and stay within a website for a long time, This WebExtension tries to remove all gamification elements of a website like counters, notifications, related suggestions, commenting, like and any other method used to keep you stuck in a web page.
2018 • Self Stopper
For those of us with bad habits, Self Stopper is a WebExtension that blocks a given set of web addresses. So if you just keep returning to Twitter and find it a waste of your time you can simply block it to yourself!
Others
2017 • Kary Note for Phones
Note for Phone is was a re-implementation of Kary Note in Command line. In making of this phone app I developed the Bassoon and Timpani tools and started to make the app more than what it used to be. For now I'm making a new app for the web and for the Phone to become the dominant note app for me.
2017 • Pirate Browser
Pirate is a fork of Brave Browser that is just a little bit more pretty because I found the original browser unbearable.
KProj is an internal tool developed to estimate the cost of a project. It gets a table of tasks with given developer type, duration and phase. It then computes the phase times and and tries to compute the management cost based on the estimated time, and then computes the total development cost and time.
2018 • Ad Escaper
A simple YouTube ad blocker based on a flaw in the frontend of YouTube that I recently found.
2013 • Flip it Kary!
When trying to import text from a Persian PDF file you'll end up having all the text broken. Persian characters get mixed up with Arabic ones, the directions get messy and the places get mixed up. Flip it Kary! was a project that could import text from PDF and fix it to normal Persian.
2017 • Racket for Visual Studio Code
Language support for the Racket Language that has better colorization which is heavily supported by the Pro Colors and also having a context-aware auto-compilation support for Racket.