Dhaani - interactive Programming

Where Human Creativity Meets AI Efficiency

Dhaani uses a 2-step approach: design first, then code.
Combine your innovative solutions with AI's speed and knowledge to build modular software with human-in-the-loop control.

This work is an intersection of:

AI Program synthesis Software engineering Human-AI collaboration Legacy modernization
2-Step Process
Modular Design
Human-in-Loop Control
D
Design
C
Code

See Dhaani in Action

Why Dhaani?

🧠

Human Creativity

Your innovative solutions drive the development process. AI amplifies your ideas, not replaces them.

⚑

AI Speed

Leverage AI's vast knowledge and coding capabilities to build faster than ever before.

πŸ”§

Modular Design

Change and enhance parts of your software without impacting other components.

πŸ“š

Living Documentation

No documentation overhead. Your workflow becomes living documentation tied to your code.

🎯

Incomplete Specifications

AI excels at working with incomplete requirements, just like experienced developers.

πŸ‘₯

Broad Accessibility

From low technical to high technical users - everyone can benefit from Dhaani.

Build New Software or Modernize Existing Code

Dhaani uses an inspectable data-flow representation to keep AI-assisted development structured, modular, and reviewable.

Program synthesis

Python and .NET support

Create new projects in Python or .NET 8/C#. Dhaani works with you to create a Data Flow Diagram and turns the reviewed data flow diagram into modules, then lets you run, inspect, and refine each result.

  • Python modules and uv-backed execution
  • SDK-style .NET 8 projects and C# modules (the .NET 8 SDK is required to run them)
  • Once you accept a module, work on another module does not change its codeβ€”keeping the system modular and maintainable by design
  • The DFD stays tied to the generated code as living documentation, making the codebase easier for people to understand

Related research

Scientific data-analysis systems Springer arXiv β†’
Structured program synthesis: IPARC Challenge arXiv β†’

How It Works

1

Design Phase

The design phase focuses on creating a data flow diagram based on the user input specification.

2

Code Phase

The coding phase then codes each process of the workflow, solving the requirement and creating an end-to-end solution. AI's efficiency and knowledge work with human creativity to generate modular, maintainable code.

Perfect For

πŸ”¬

Scientific Workflows

Streamline data analysis, experiment automation, and research pipeline development.

πŸ“Š

Data Science

Build data processing pipelines, ML models, and analytical tools with ease.

πŸ€–

AI-ML Workflows

Develop machine learning applications and AI-powered solutions efficiently.

πŸ“ˆ

Data Analysis

Analyze datasets, generate insights, and create comprehensive data analysis workflows.

πŸ†

Research Challenges

Tackle complex problems like the IPARC challenge with innovative approaches.

πŸ—οΈ

Legacy Modernization

Understand and migrate legacy repositories through an inspectable data-flow representation.

Install and Run Your First Project

The desktop app bundles its runtime, so you do not need to install Python or Node.js separately.

  1. 1

    Install for your operating system

    • macOS (Apple Silicon): download the DMG, helper ZIP, and instructions together. Open the ZIP and run Install_Dhaani.command.
    • Windows x64: run Dhaani Setup 1.0.1.exe and follow the installer.
    • Linux x64: make Dhaani-1.0.1.AppImage executable, then open it.
  2. 2

    Configure a model provider

    Launch Dhaani. On the first run, open Settings β†’ LLM Provider. Select a provider and model, enter the required API key or endpoint, click Test Provider, then Save Settings.

    Supported choices include Azure OpenAI, OpenAI, Anthropic, Google Gemini, local Ollama and more. Ollama does not require an API key, but its service and selected model must already be running locally.

  3. 3

    Open a bundled example

    On the Projects page, find Demo Projects and click Try this demo. Dhaani creates a working copy, so the bundled example remains unchanged.

  4. 4

    Create your own project

    Choose Python or .NET when creating the project, describe the requirement, review the proposed data flow diagram, and then generate and refine its modules.

Basic troubleshooting

Common first-run fixes

Provider test fails

Recheck the provider, model name, API key, endpoint, and internet connection. For Ollama, confirm the service is running and the model is installed.

Rate limit or timeout

Wait briefly and retry. If the request is large, shorten it or select a provider/model with a larger context window.

macOS blocks the helper

Open System Settings β†’ Privacy & Security, find the blocked helper, and choose Open Anyway.

Linux AppImage will not open

Run chmod +x Dhaani-1.0.1.AppImage, then launch it again. Also check that AppImage/FUSE support is available on your distribution.

Research & Credibility

Reliable LLM software engineering requires structured decomposition and protocol-based human interaction.

iProg revisits structured inductive programming in the LLM era, using language models not as autonomous end-to-end programmers, but as proposal generators within a human-ratified decomposition-and-synthesis process.

Research Publications and Preprints

Identifying Latent Declarative Representations of Code for Assisting Repository Migration

Evaluates annotated-data-flow-mediated migration across 50 Fortran repositories converted to Python.

Engineering Systems for Data Analysis Using Interactive Structured Inductive Programming

Published in the Advanced Information Systems Engineering proceedings of CAiSE 2026; introduces iProg's structured decomposition and human-ratified synthesis workflow.

Structured Program Synthesis using LLMs: Results and Insights from the IPARC Challenge

Studies a 600-task benchmark and reports successful synthesis across sequence, selection, and iteration categories.

Research Highlights

Repository-scale Evaluation

50 Fortran repositories migrated to Python in the f2x50 benchmark

Behavioral Agreement

85.6% across 382 planned source-oracle probes in the migration study

Scientific Systems

CAiSE 2026 evaluations in astrophysics and biochemistry showed better performance, higher code quality, and order-of-magnitude faster development than low-code/no-code alternatives

IPARC Program Synthesis

Solved tasks across sequence, selection, and iteration categories while demonstrating the value of prior structuring, human refinement, and code reuse

Download Dhaani

From specifications to code: design your data flow diagram, then generate modular Python/ .NET code or migrate Fortran repositories to Python on macOS, Windows, and Linux. Keep control, accountability and transparency.

Requirements

⌨️ Python and .NET 8/C# projects
πŸ”‘ A model-provider account/API key or local Ollama
🧰 .NET 8 SDK required to run generated C# projects
🍎

macOS

Apple Silicon (arm64) Β· DMG

πŸͺŸ

Windows

64-bit Β· Setup EXE

🐧

Linux

64-bit Β· AppImage

Note: Dhaani is free for everyone to use. Download and start building your next project today!

Projects, diagrams, generated code, and interaction logs are stored on the user’s machine. Use of third-party model providers is subject to their respective terms and charges.

Creating new projects with Dhaani? Please cite Engineering Systems for Data Analysis Using Interactive Structured Inductive Programming. BibTeX.

Using Dhaani for legacy modernization? Please cite Identifying Latent Declarative Representations of Code for Assisting Repository Migration. BibTeX.

Get in Touch

Have questions or feedback? We'd love to hear from you.

About the Author

Dhaani was created by Shraddha Surana during her research in interactive structured induction of programs for program synthesis. During her research she realized that while AI excels at coding and speed, the most innovative solutions come from human creativity. This led to the development of a human-in-the-loop approach that combines the best of both worlds. It uses specifications and structured interactions to generate code using LLMs' vast background knowledge and efficiency. This work now frames iProg as a structured inductive programming approach for the LLM era, where language models operate as proposal generators within a human-ratified decomposition-and-synthesis process.

πŸŽ“ Research Scholar, BITS Goa
🎀 International Speaker
πŸ“š 169 Citations