A camera can catch a hawk turning above a ridge, the shine on a coffee cup, or a founder attempting to look natural in a launch video. Ask a developer to control that same camera from a computer, however, and the romance drains from the frame. Waiting below the shutter button is a museum of protocols, manufacturer extensions, USB details and peculiar exceptions. Kevin Schaich has decided to work in the museum.
His company, Darkgrade, publishes software that lets a developer connect to and control professional cameras with TypeScript. A few readable commands can set ISO, shutter speed and aperture, capture an image, inspect stored files or request a live-view frame. The promise is deliberately plain: two lines to get started. The work beneath those lines is anything but.
Darkgrade calls its larger ambition a protocol for large language models to interface directly with image sensors. Put less grandly, Schaich wants cameras to become easier for software to understand and direct. The company is active, belongs to Y Combinator's Fall 2024 batch and lists a team size of one. It is a small operation taking aim at a seam that has existed for decades.
Frame one
The photograph was there first
The cleanest clue to Darkgrade is not hidden in a pitch deck. It sits in Schaich's old Flickr profile. As a student in Ithaca, he listed a Canon 6D, a wide-angle Canon lens, a Tamron telephoto zoom, a travel tripod, a MacBook Pro and Adobe's creative software. This is the inventory of somebody who knew both the delight of making pictures and the mild absurdity of the tools required to make them.
At Cornell, where he studied computer science from 2013 to 2017, Schaich ran toward cameras whenever coursework released him. He served as president of the Cornell Film Club for two years and president of the Cornell Photo Society for nearly three. The film club managed a $12,000 annual equipment budget and staged four 24-Hour Film Festivals, each with four production teams. The photo society grew from 10 active members to more than 300.
There was already a useful mixture of craft and automation. While serving as marketing chair for Cornell's chapter of the Theta Tau engineering fraternity, Schaich automated a workflow for more than 60 professional headshots. The stack was delightfully improvised: Lightroom, Google Forms, Python and Photoshop Variables. A portrait session became a data pipeline before data pipelines became his company.
“Let your camera understand the world with Darkgrade.”Kevin Schaich's YC founder profile
His campus work was social, too. Clubs need recruiting, budgets, schedules and a reason for hundreds of busy students to keep showing up. That experience sits at an interesting angle to engineering. A tool does not win because its internals are ingenious. It wins when people can pick it up, make something and return next Thursday.
Frame two
Six years in the machinery of data
After Cornell, Schaich joined Palantir Technologies. Between 2017 and 2022, his public work history moves through forward-deployed engineering, technical leadership, deployment strategy, project leadership and commercial enterprise work. The titles tell a compact story: first make the system work, then make it work with people, then make it work inside an organization large enough to have opinions about everything.
That tour matters because Darkgrade is not only a camera project. It is an interface project. Palantir's software lives where messy information, software and operational decisions collide. Schaich later brought that experience to founding-engineer roles at CogBase and Arlo. Arlo introduced him in 2023 as an engineer who would work on its digital member experience and provider analytics infrastructure, after building artificial-intelligence workflows in regulated industries.
In 2024, Schaich and Cornell classmate Nisola Shobayo entered Y Combinator with Coblocks. Their launch described an all-in-one way to build data pipelines with AI, including integrations, warehousing, transformations and scheduled workflows. It was pitched as a friendlier place to write SQL and Python, with the software understanding tables and relationships.
The video had jokes. One commenter admired the coffee cutaway; another said a data-platform video had managed to be funny and informative. Schaich's own announcement was equally unceremonious: “Stoked to finally share some of the cool stuff Nisola and I have been building!” The phrasing matches the line that has followed him around the web for years - building cool things, usually with data, preferably in public.
Frame three
A pivot that looks like a return
Coblocks eventually gave way to Darkgrade. The current company description no longer speaks about warehouses or SQL. It speaks about cameras understanding the world. Yet the shift feels less like abandoning a subject than choosing a more personal kind of data. A photograph is a matrix of values before it becomes a memory. A video stream is a pipeline with a lens attached.
The public Darkgrade library is a TypeScript implementation of ISO 15740:2013, the Picture Transfer Protocol used beneath many digital cameras. It adds partial support for vendor-specific behavior and currently names Canon EOS, Sony Alpha and Nikon Z devices. The library can automatically detect cameras, control exposure settings, capture images and navigate stored objects. Live view and video support vary by manufacturer, an honest chart of green checks, yellow circles and limitations.
TypeScript
Link
sensor
The alpha label is important. APIs may change without backward compatibility. Camera models disagree. Nikon can distinguish photo mode from video mode with a physical switch; a program cannot politely wish the switch elsewhere. Canon and Sony have their own extensions. Darkgrade's contribution is partly a technical implementation and partly a catalog of reality's refusal to be uniform.
That refusal is where useful infrastructure lives. Anyone can draw three tidy boxes and two arrows. The product begins when the camera is connected, one vendor reports an aperture in a surprising format, another treats video as a separate kingdom, and the developer still expects a method called setAperture to behave.
The product begins where the tidy diagram meets a physical switch.On software, cameras and reality
Contact sheet
The public workshop
Schaich's GitHub account helps explain his method better than a collection of founder adjectives could. It contains about 60 public repositories. There is a PySpark reference guide, a set of PySpark bindings for Uber's H3 geospatial index, a free personal-finance automation project called Mintable and a curated map of dog-friendly national parks. There is code for controlling Amaran studio lights over Bluetooth and an ESP32 bridge that exposes those lights to home-automation software.
The subjects bounce from money to maps to lighting, but the gesture repeats. Something useful is locked behind an awkward interface. Schaich reads the instructions, finds the seams and publishes a cleaner handle. Even the national-parks map combines automated collection with manual cleanup, a small confession that data rarely arrives wearing its evening clothes.
Darkgrade belongs comfortably in that workshop. Its documentation does not hide behind a waitlist. It shows install commands, code samples, feature tables, tested models and workarounds. The repository exposes the emerging product to the exact people most likely to discover its weak spots. That can make development untidy. It also makes the claim inspectable.
The visual interests remain close. Schaich's GitHub introduction is a camera emoji. His pinned projects include the lighting bridges beside Darkgrade. His older photography profile recorded 130 images and the particulars of his kit. The line from photograph to protocol is not poetic decoration applied after the fact. It is visible in the artifacts.
The next exposure
What a camera might become
Darkgrade's stated aim extends past remote shutter control. A protocol between image sensors and language models suggests cameras that can be directed in terms closer to intent: follow a subject, notice a change, choose when an image matters. The public library does not yet equal that entire vision. It establishes a lower layer - reliable access to the device that sees.
That sequencing is sensible. Before a model can act through a camera, software needs a trustworthy way to connect, inspect state and issue commands. Before the theatrical future comes the unglamorous method that returns the current ISO. Schaich's career has repeatedly occupied this middle distance between a complicated system and the person trying to use it.
There is also an appealing circularity in the choice. As a student, he helped people learn cameras, find collaborators and make films on a deadline. At Palantir and startups, he learned how data products survive contact with institutions. With Darkgrade, he can place those lessons inside the same frame: the photographer's respect for the device, the engineer's irritation with needless complexity and the organizer's instinct to make the tool legible to a group.
A camera, after all, is already an argument about translation. Glass turns a scene into light; a sensor turns light into numbers; software turns numbers into an image; a person decides whether the image means anything. Schaich is inserting a new translator into that chain. For now it speaks TypeScript, knows several camera families and carries an alpha warning. Ambition is allowed to arrive with release notes.