I've spent my career working in standard SaaS companies, but I recently joined a simulation software company. Suddenly, I was thrown into the deep end of conduction, material characterisation, and CTE (Coefficient of Thermal Expansion) simulations. As part of that, I got introduced to the world of semiconductor geometries and layout tools. Coming from web dev, I found traditional CAD interfaces and the sheer amount of boilerplate code required to generate simple test structures (like via arrays, capacitors, or guard rings - I still find terminology amusing and need to do googling every time) pretty overwhelming. As a learning project to understand the domain better, I decided to build something that bridges my software background with my new hardware reality. I built GeoForge - a natural language CLI and Web UI that generates validated GDSII/OASIS files from plain English prompts.
How it works: You give it a prompt like: "Create a 5x5 via array with 1um pitch connecting metal1 to metal2." It uses an LLM (supports local Ollama for free, or Gemini/Claude/OpenAI) to extract a structured spec. It generates parametrised Python code using gdsfactory.
The cool part: It runs the code in a sandboxed environment. If there's a syntax or execution error, it catches it and feeds the error back to the LLM in a retry loop so it can self-correct before giving you the final .gds/.oas file.
Why I'm posting here: Because I'm still new to this industry, I know this is currently more of a "cool learning project" than a production-ready EDA tool. But I want to know if this actually has legs to be useful to you all. I'm looking for early feedback to figure out which direction to take it: - What component families (RF, photonics, test structures) would be most useful to have deterministic templates for? - Would adding basic Design Rule Checking (DRC) to the validation loop make this actually usable for you? - How do you currently prototype these kinds of geometries?
The repo is here if you want to try it out (it has a Gradio Web UI too): https://github.com/rusrushal13/geoforge
I'd love any brutal, honest feedback or advice on where to take this next!