Software

Software for the people who design and build furniture.

Two products and a handful of tools, each written to remove a real step that designers, sales staff or CNC operators were doing by hand.

Case study 01 · Built for Philpa (office furniture) · 2021 – present · solo

BOND — A Rhino/Grasshopper plugin that takes the designer’s model to the factory floor

Software developer — found the weak points in Philpa’s workflow, then designed and built the plugin on my own

The problem

Office-furniture companies design in one tool, price in a spreadsheet and program their CNC machines by hand. Every hand-off retypes the same dimensions, and every retype is a chance for a costly mistake.

What it does

A product is modelled once, parametrically, inside Rhino and Grasshopper. From that one model the plugin produces the drawings, the technical analysis, the parts data and the CNC output.

How it started

I joined Philpa as an interior designer, found the weak points in its design-to-production chain and moved the design department from AutoCAD to Rhino. Then, on my own, I wrote BOND for the team. Eight designers use it every day.

  1. Parametric products

    Dynamic parametric blocks for the product range, driven from Grasshopper.

  2. Drawings & analysis

    Drawing sheets, technical analysis and parts lists generated from the model, not redrawn.

  3. Production

    Inventory data and CNC-ready output for panel-processing machines, straight from the same model.

  • 22Grasshopper components
  • 13Rhino commands
  • 8designers using it every day
BOND components on the Grasshopper canvas driving a parametric product in Rhino
BOND’s Grasshopper components driving a parametric product in Rhino.
  • C#
  • .NET
  • RhinoCommon
  • Grasshopper SDK
  • WPF
  • MongoDB

Case study 02 · My own product · 2026 – present · in pilot at Philpa

Atrium — A parametric CAD application built for furniture

Founder and developer

The problem

General-purpose CAD makes furniture companies choose between solid modelling (SolidWorks), family hierarchies (Revit) and quick dynamic components (SketchUp).

What it does

Atrium combines the three in one desktop application, with manufacturing in the model: Material → Tool → Process → Part → Assembly → Plan. Drilling, edge banding and pocketing are part of the model, not notes on a drawing.

Under the hood

Every dimension can be a formula; a directed dependency engine resolves them in order and refuses circular references. The same repository layer talks to a local SQLite file or to a company server with no change to the UI.

  • 6levels in the product model
  • 1company piloting it with production data
Parametric base cabinet in Atrium
A parametric base cabinet in Atrium’s custom OCCT viewport.
  • Python
  • PyQt5
  • OpenCASCADE (pythonocc)
  • SQLAlchemy
  • PBR materials

In use · Open source

Smaller tools

Sahlan · 2019 – 2021

SketchUp CRM plugin

Asked to plan a move to Revit, I recommended SketchUp instead, modelled the product range as dynamic components and connected designs to the CRM.

Ruby · HTML · JavaScript

4 designers using it every day

Open source

QuickGH

Run a Grasshopper definition from Rhino without opening it: pass inputs, get outputs.

C# · RhinoCommon

Open source

InputPlus

Store and retrieve geometry inside Grasshopper, with an in-canvas wallet and JSON import/export.

C# · Grasshopper SDK

Open source

AlphabetSequence

Zero-dependency C# library for Excel-style sequences (A … Z, AA …): navigation, comparison, number conversion.

C# · .NET

Beyond CAD

Other software

Smart mirror kiosk for hair salons · 2026

Hair Studio

A single Windows app: the camera detects presence, distance and age on-device, invites people who walk up, then analyses the face and generates a hairstyle poster with AI. Self-updating installer.

Python · YuNet/SFace · WebSocket bus · React · OpenAI API

AI agent for Android · 2026

Minilop Agent

A Claude Code–style agent on the phone: streaming chat, tool use in a private workspace with permission prompts, session compaction, per-chat model choice, and a server that keeps API keys and per-user credit.

React Native (Expo) · TypeScript · OpenAI API · GitHub Actions

Company site for Philpa · 2026

Philpa website

Bilingual Persian/English site rendered on the server for search engines, with its own admin panel, light/dark themes and scroll animation.

Next.js · Payload CMS · PostgreSQL · GSAP