AI is a human project.
Design image-classification models visually, train them with live metrics, and deploy them as real APIs — board models, your own .pt, or tool-calling agents. Then drive the whole thing from a Python SDK, and export clean PyTorch you own outright.
Toby, your in-board assistant, edits the architecture with you.
The loop
Design on a board
Drop layers on a canvas and wire them up. Type-checked nodes, live validation. Start from a preset — Simple CNN, ResNet block, LeNet-5, Tiny ViT — for image classification.
Train with live metrics
Pick epochs, batch size, optimizer, learning rate. Watch loss and accuracy stream in on a live chart as it runs — pause, resume, or cancel anytime.
Deploy as a real API
One click reserves an endpoint and serves your weights. Ship a board model, upload your own TorchScript .pt, or stand up a tool-calling agent.
Drive it from code
One pnotp_sk_ key runs the whole platform from the pnotp Python SDK — create boards, train, deploy, and call inference.
Visual model designer
A fullscreen board where the architecture is a graph you can see and edit — preprocessing, layers, loss, and the classifier head, validated live.
Training you can watch
CPU training with a live log tail and metric charts. No notebooks to babysit, no infra to stand up first.
Three ways to deploy
Board models, external .pt uploads (auto-introspected into a board), and tool-calling agents — each a real endpoint with an API key and a ready-made call snippet.
Real PyTorch, no lock-in
Export a clean PyTorch project — configs, train, eval, predict, and a model card — that runs anywhere. The code is yours.
Tool-calling agents, served as an API.
Give an agent a brain — your own Gemini, DeepSeek, or any OpenAI-compatible key — arm it with tools, and deploy it behind one endpoint. Runs are bounded by a per-run budget and metered against your credits. We host no LLMs: the keys and the model stay yours.
The whole platform, from code.
One account key drives everything the studio can do — create boards, run training, deploy, and call inference. Same actions, scriptable.
# pip install pnotp import pnotp px = pnotp.Client(api_key="pnotp_sk_…") # train → deploy → predict job = px.train(model.id, dataset="train.zip").wait() dep = px.deployments.upload(project, "prod", "model.pt") px.predict(dep["deployment"]["id"], "xray.jpg")
Start from a template.
Image-classification boards you can open, inspect, and make your own — not hidden workflows.
Export real PyTorch. No black boxes.
Build it on a board, train it, deploy it, call it from code — and walk away with the code if you want to. No proprietary runtime, no lock-in.