                        ESP: The Engineering Sketch Pad
                             Rev 1.29 -- December 2025

                          https://acdl.mit.edu/ESP/


1. Prerequisites

    The major prerequisite is a WebGL/Websocket capable Browser. In general 
    these include Mozilla's FireFox and Google Chrome. Internet Explorer or 
    Edge are NOT supported because of a problem in Microsoft's Websockets.
    Edge Chromium does not display this problem. The setup scripts examines 
    the default locations for Edge Chromium, FireFox and Chrome, and if found,
    uses one of these browsers when required.

    Note that this was built on a Windows 11 x64 machine using Visual Studio 
    2022.

1.1 Distribution Layout

    README.txt        - this file
    EngSketchPad      - the source and built ESP components 
    esp_logo.ico      - the ESP logo icon
    OpenCASCADE-7.8.1 - the version of OpenCASCADE used
    Python-3.12.10    - the version of Python used in the build
    VC_redist.x64.exe - Visual Studio redistribution package (for ESP)
    setup.cmd         - the ESP setup script


2.0 Installation

    Double click on "ESP128-win-x64.exe" (or "ESP128-win-x64.zip")
    and extract to the desired location. Spaces in the path must be avoided!

    Double click on "setup.cmd" in the extracted location. This will create 2
    desktop shortcuts to a command prompt that should be used for all ESP
    execution. These command prompts should start up in the bin directory 
    of ESP unless the install location is on a UNC path. If this is the case 
    the "start in" location on the shortcut property must be manually edited.
    You can disregard any output that looks like:
      WARNING: Value for scheme.headers does not match. 
               Please report this to <https://github.com/pypa/pip/issues/9617>
      distutils: %PYTHONHOME%\Include\UNKNOWN
      sysconfig: %PYTHONHOME%\Include
      WARNING: Additional context:
      user = False
      home = None
      root = None
      prefix = None

    The desktop command prompt (labeled "ESP128") when double-clicked starts 
    up the appropriate shell and sets the environment, then leaves the shell 
    open so that you can freely execute (at the command line) any ESP/CAPS 
    application. 

    The command prompt labeled "runESP128" starts up "serveESP" directly and 
    terminates when the ESP browser session completes.


3.0 Running ESP

    If there are complaints about VCRUNTIME*.dll is missing, please install
    VC_redist.x64.exe included with this distribution.

    Note: the above may require administrative privileges.

3.1 serveESP

    To run the program, either just double click on runESP128 or ESP128
    desktop shortcut and use:

         > serveESP ..\data\tutorial1

    Once the ESP GUI is functional, press the "help" button in the upper left 
    if you want to execute the tutorial.

3.2 egads2cart

    This example takes an input geometry file and generates a Cart3D "tri" 
    file. The acceptable input is STEP, EGADS or OpenCASCADE BRep files 
    (which can all be generated from an OpenCSM "dump" command).

        > egads2cart geomFilePath [angle relSide relSag]

3.3 vTess and wvClient

    vTess allows for the examination of geometry through its discrete
    representation. Like egads2cart, the acceptable geometric input is STEP, 
    EGADS or OpenCASCADE BRep files. vTess acts like serveESP.

        > vTess geomFilePath [angle maxlen sag]


4.0 CAPS (Computational Aircraft Prototype Syntheses)

    Note that CAPS has been built with the version of Python in this pre-built 
    distribution. If you wish to use ESP in a larger Python environment it is 
    strongly suggested that you build ESP.

4.1 Documentation

    The CAPS documentation can be seen in PDF form from within the directory
    %ESP_ROOT%\doc\CAPS. Or in html by %ESP_ROOT%\doc\CAPS\CAPS_Overview.html.

4.2 Executing CAPS through Python

    > python pyCAPSscript.py  (Note: many example Python scripts can be 
                                     found in %ESP_ROOT%\CAPSexamples\pyCAPS) 

