Artemis (YC S22) – Use comments to give code an interactive interface

Hello Hacker News, we’re Austin, Manvir, and Kyle, the cofounders of Artemis Labs (https://artemisdevtool.com). We turn your in-line comments into a UI that can be used to visualize, test, document and share your code. This helps engineers and scientists quickly create quality scripts.

Artemis was born in a Caltech robotics lab where I saw firsthand how much time and effort it took to create a quality script. Engineers were spending hundreds of hours making slide decks, hybrid Markdown / LaTeX documents, and demo GUIs just to make their tools accessible and usable by others. As someone who has been on the learning end of things, it can be nearly impossible to decipher or use even the smallest scripts if they lack quality documentation and interactive interfaces. Although these methods worked they were an incredible time sink and documentation became stale quickly.

Artemis was devised as a solution to this problem. We wanted a tool that allows developers to create high-quality interfaces and documentation without forcing them to invest substantial time, alter their codebases or make significant changes to their workflows.

The way it works is simple: First add special comments to your codebase; Artemis uses these comments (called “anchors”) to automatically generate a GUI for your code. Then run your program using our command-line utility. Artemis launches in an offline browser window that displays your code on one side and your new interface on the other. To see how this looks, you can watch our demo video here: https://www.youtube.com/watch?v=IDL12DkS2Hc.

This interface scrolls vertically, so as your code runs new GUI elements appear one below another at the relevant time organized into “cards.” For example, if a program takes two numbers and adds them, your interface will first show input fields for the variables in one card. When you enter numbers and press “continue,” a new card showing the result will appear.

There are three types of anchors: inputs, outputs and documentation. Inputs let you change variables in your program via the interface, outputs represent the products of your program as graphs, text, etc. and documentation lets you create interface elements that explain what is happening as your program runs. Documentation can take the form of text, Markdown, LaTeX, syntax-highlighted code snippets, multimedia, and links, and more.

These anchors all follow the same format: you put them in a comment, beginning with “@,” followed by its type— “input,” “output” or “doc.” For “doc” anchors you just proceed to add whatever you would like to appear in the document card. For inputs and outputs, you need to specify which variable they act upon by typing “data=x,” with x being your variable.

We provide a suite of default anchors, such as text inputs, and outputs in the form of text, tables, and graphs—but we also let you create your own, using regular Python. Do you need to create a custom anchor to quickly display your statistical data using Seaborn? Do you want to automatically render advanced 3D plots in Matplotlib? Artemis makes this, and more, easy.

The reason we opted to have anchors work from comments is to avoid requiring you to alter your code or the way you work. You don’t have to toggle between different environments—you stay in your preferred IDE, bringing more functionality to it rather than requiring you to go somewhere else.

For example, we subsume the functionality of Jupyter as a visualization tool without requiring you to use a notebook. In our experience, notebooks are rather constraining relative to a full Python environment— they require you to restructure your code for the notebook, run your programs on an IPython kernel, and often import new third-party libraries or widgets. With Artemis you get the interactivity of a notebook, as well as the display of UI elements and documentation alongside code, but it also works with professional-grade codebases and tooling.

Artemis interfaces can be exported as an HTML file that runs offline. This is a key feature that makes us a portable, effective documentation/walkthrough tool. These interfaces are small enough to send via email and can even be embedded in web pages. When a third party opens your HTML file, they’ll see exactly what you see when you run your program with Artemis: an interface on the left and your code on the right.

We thought the most obvious applications of this approach would be for quickly building interactive computational tools and making test scaffolding for complex programs. But it turned out to also be really good for making code walkthroughs that can explain your program to coworkers or managers, or teach people how to use your program. You can see this in action here: https://www.youtube.com/watch?v=V4c3Q6lHFPo.

Engineers at Mayo Clinic use Artemis in this way, using our Markdown, LaTeX, and multi-media documentation capabilities coupled with custom anchor outputs to produce step-by-step walkthroughs for their internal tools.

Artemis is ready to go, and we offer a free trial on our website. Setup and installation only take a minute, but we’d also be delighted to answer your questions personally and/or give you a walkthrough—we like to meet our users!

Our current pricing model is $15/month for basic Artemis. There’s a pro version that allows you to create custom anchors (beyond inputs, outputs and doc), and export your interfaces as HTML files. We also do the “contact us” enterprise thing for larger teams.

We’ll be around in the comments below and are super interested in whatever you have to say!



Get Top 5 Posts of the Week



best of all time best of today best of yesterday best of this week best of this month best of last month best of this year best of 2023 best of 2022 yc w24 yc s23 yc w23 yc s22 yc w22 yc s21 yc w21 yc s20 yc w20 yc s19 yc w19 yc s18 yc w18 yc all-time 3d algorithms animation android [ai] artificial-intelligence api augmented-reality big data bitcoin blockchain book bootstrap bot css c chart chess chrome extension cli command line compiler crypto covid-19 cryptography data deep learning elexir ether excel framework game git go html ios iphone java js javascript jobs kubernetes learn linux lisp mac machine-learning most successful neural net nft node optimisation parser performance privacy python raspberry pi react retro review my ruby rust saas scraper security sql tensor flow terminal travel virtual reality visualisation vue windows web3 young talents


andrey azimov by Andrey Azimov