TutorialNovember 20269 min read

How to Check Plot Shape, Brahmasthan and Entrance Vastu Programmatically

The first three things clients ask about a property are usually the shape of the plot, the centre of the house and the direction of the main door. All three can be checked from coordinates. This article shows how the VedIntel™ Vastu API does each check, what it reports, and where it deliberately says nothing.

1. Plot shape and proportion

Every geometry response includes the plot's area, bounding_box and aspect_ratio. In rules version 1.0.0, a length-to-width ratio between 1.0 and 2.0 fires plot-aspect-ratio-positive, a moderate-confidence rule attributed to the Manasara tradition. The 20 × 10 test plot has a ratio of exactly 2.00, so it qualifies.

Real plots are often not rectangles. The Brahmasthan block of the response reports plot_regularity (regular or irregular) and bbox_coverage_ratio, the plot area divided by its bounding-box area. That ratio is 1.0 for a rectangle and lower for L-shapes, triangles or a rectangle drawn at an angle. When a plot is irregular, the response adds an irregularity_warning, because classical texts such as Mayamata and Manasara describe the Mandala for regular plots.

2. The Brahmasthan

The API projects a 9 × 9 grid over the bounding box of the north-rotated plot. The Brahmasthan is the central 3 × 3 block, rows and columns 4–6, which is one ninth of the bounding-box area. POST /api/v1/vastu/brahmasthan returns that cell and checks each room against it.

3. The main entrance

Send the bearing the main door faces, 0–360° clockwise. With north_angle 0 that is a True North bearing. If your plan is rotated, see the note on north_angle in the directions article.

Live output for a north-east entrance
POST /api/v1/vastu/entrance
{"entrance": {"bearing_deg": 45}, "north_angle": 0,
 "plot": [{"x":0,"y":0},{"x":20,"y":0},{"x":20,"y":10},{"x":0,"y":10}]}

"calculation": { "entrance": { "direction_8": "NE", "direction_4": "E", "bearing_deg": 45,
                               "deity": "Ishana (Shiva)", "label_en": "North-East" } },
"rule_evaluation": { "findings": [ {
  "rule_id": "entrance-ne-positive",
  "outcome": "positive",
  "severity": "minor",
  "source_type": "consensus",
  "source_text": null,
  "source_verification_status": "consensus_only",
  "interpretive_confidence": "moderate",
  "trigger": "Main entrance faces NE"
} ], "positive_count": 1, "negative_count": 0, ... }

This finding is a good example of why the source fields matter. A north-east entrance is widely recommended in modern practice, but the rule is consensus with consensus_only verification and moderate confidence. It is not a rule tied to one classical text. Present it that way.

4. Compare options with /vastu/findings

Before a door is built, you often want to compare candidates. POST /api/v1/vastu/findings runs the rule engine on semantic input, with no polygons: room zones, the entrance direction, whether the Brahmasthan is obstructed, and the plot aspect ratio. That makes what-if tests cheap to write:

JavaScript
// Compare candidate entrance directions without any geometry (one API call each).
const DIRS = ['N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW']

async function compareEntrances(apiKey) {
  const rows = []
  for (const dir of DIRS) {
    const res = await fetch('https://vedintelastroapi.com/api/v1/vastu/findings', {
      method: 'POST',
      headers: { 'X-API-Key': apiKey, 'Content-Type': 'application/json' },
      body: JSON.stringify({
        rooms: [{ name: 'Kitchen', zone_8: 'SE' }],
        entrance_direction_8: dir,
        brahmasthan_is_obstructed: false,
        plot_aspect_ratio: 2,
      }),
    })
    const json = await res.json()
    if (json.status !== 200) throw new Error(json.error + ': ' + json.message)
    const ev = json.response.rule_evaluation
    const entrance = ev.findings.filter(f => f.category === 'entrance')
    rows.push({ dir, positive: ev.positive_count, negative: ev.negative_count, entrance })
  }
  return rows
}

For a kitchen in SE, a NE entrance, a clear Brahmasthan and a ratio of 2, the live engine returns four positive findings: kitchen-se-positive, brahmasthan-clear-positive, entrance-ne-positive and plot-aspect-ratio-positive. Each candidate costs one API call, so eight directions cost eight calls.

5. Validation errors are specific

Bad input returns HTTP 400 with error: "INVALID_INPUT", the failing field and a readable message. Show the message to the user instead of a generic error:

Live error responses
HTTP 400
{ "status": 400, "error": "INVALID_INPUT", "field": "entrance",
  "message": "Entrance bearing_deg must be 0–360" }

HTTP 400
{ "status": 400, "error": "INVALID_INPUT", "field": "rooms.0.zone_8",
  "message": "zone_8 must be one of: N, NE, E, SE, S, SW, W, NW" }

HTTP 400
{ "status": 400, "error": "INVALID_INPUT", "field": "plot",
  "message": "'plot' must have at least 3 vertices" }

6. Timing the move: griha pravesh muhurta

POST /api/v1/vastu/muhurta with event_type: "griha_pravesh" checks one date at one place, using Swiss Ephemeris positions and rules from Muhurta Chintamani. Here is a live result for Bengaluru:

Request
curl -X POST https://vedintelastroapi.com/api/v1/vastu/muhurta \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"event_type":"griha_pravesh","date":"15/01/2027","lat":12.9716,"lon":77.5946,"tz":5.5}'
Response (trimmed)
"muhurta": {
  "date": "15/01/2027",
  "suitable": false,
  "score": "4/4",
  "tithi": "Saptami", "nakshatra": "Revati", "yoga": "Shiva", "vara": "Friday", "paksha": "Shukla Paksha",
  "sunrise": { "utc": "01:15:37", "unix": 1799975737 },
  "muhurta_windows": [],
  "blockers": ["Lunar month Pausha not prescribed - MC 13.1-13.2"],
  "day_blockers": ["Lunar month Pausha not prescribed - MC 13.1-13.2", "Movable lagna - MC 13.4", "Nakshatra not prescribed"],
  "evaluation": "best_moment_no_window",
  "rules_source": "Muhurta Chintamani 13.1-13.2 (months; soft and fixed nakshatras), 13.4 (...), 1.46-1.47 (...)",
  "recommendation": "15/01/2027 is not recommended for Griha Pravesh. No muhurta window in the Hindu day ..."
}

Note that the score is 4/4 but the day is still not suitable. The score covers tithi, nakshatra, yoga and weekday. Blockers such as the lunar month (Pausha is not prescribed) or a movable lagna can still rule a day out. Show suitable, the blockers and the recommendation together. The sunrise is in UTC: 01:15:37 UTC is 06:45:37 IST. bhoomi_puja, griha_arambha, vastu_puja and griha_pravesh_renovation return HTTP 501 for now.

These checks report what traditional texts and common practice say about a layout or a date. They do not predict outcomes, and they do not replace a structural survey, legal checks or review by a qualified practitioner or Jyotishi for an important ceremony.

Related

Griha pravesh date finder guideScan a date range and present only the suitable days.Vastu plot assessment guideNew-build workflow: site boundary, footprint, rooms.Vastu apartment assessment guideUnit boundary, rooms and fixed constraints.

Every Vastu endpoint used here is open on every plan, including the Free trial.

Get a free API keyVastu API reference