Here is curated list of the things I made over the years and I personally hold the copyright to them†1. I made these projects in order for my research, tooling and mostly fun of it.
Which excludes any corporate project, contracted project, and any project that I used to be the managing or overseeing party of.
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.
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.
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.
2017 • KaryScript's Compiler
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.
2016 • IDF for Visual Studio Code
A package that provides language support for all the IDF based energy file formats like IDF, OpenStudio, HeatStudio, Heat19, HSTB, etc.
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.
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.
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.
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.
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
Arcco was a fork of Docco by Jeremy Ashkenas specially designed for Arendelle
2016 • Gerda
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)
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.
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.
Markup & Layout
2016 • Pageman
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.
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.
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.
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.
2015 • Intactus
Intactus —Int in Latin— is a framework that extends the Kary Framework for creating Mathematical Notations and Charts is UTF-8 characters.
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.
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!
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.