SurfEdit : Interactive Surface Editor

Edit a mesh with the mouse

The surface edition extension let you model a surface by grabbing its mesh points with the mouse or trackpad.

Z values of the surface are synchronized with a table.

Table cells can be modified to finely edit surface shape.


Surface selection

+ =
+ + =
+ =

Surface edition

+ + =
+ =
+ =

Table edition

Top slider changes column width


public void makeUI(MapData data, final float[] zticks, final float zmin, final float zmax) {
    // chart
    chart = InteractiveChartComponentFactory.chart(Quality.Intermediate, "awt");
    chart.openPrimarySurface(data, zmin, zmax, zticks);

    // table
    table = new SurfEditTable();
    table.setDefaultRenderer(Object.class, new SurfEditTableRenderer(chart.getPrimarySurface(), layout));
    table.setModel(new SurfEditTableModel(data, layout));
    scroll = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

    // table column resize
    int value = 60;
    int minScrollWidth = 15;
    int maxScrollWidth = 150;
    columnSizeSlider =, value, minScrollWidth, maxScrollWidth);

    // html usage
    htmlPane =, css());


    SurfEditTableSync sync = null;
    if (sync != null)
        sync.unwire(); // don't forget, if you hold a sync 
    sync = SurfEditTableSync.wire(chart, table);

public void makeLayout() {
    // Excel-like table with column width slider
    JPanel tablePanel = new JPanel();
    String linesP = "[20][300px, grow]";
    String columnsP = "[600px, grow]";
    tablePanel.setLayout(new MigLayout("insets 0", columnsP, linesP));
    tablePanel.add(columnSizeSlider, "cell 0 0, growx"); // column slider
    tablePanel.add(scroll, "cell 0 1, grow");

    // Bi-Panel layout : table and chart
    String lines = "[600px,grow]";
    String columns = "[600px,grow][600px,grow]";
    setLayout(new MigLayout("", columns, lines));
    add(tablePanel, "cell 0 0, grow");
    add((java.awt.Component) chart.getCanvas(), "cell 1 0, grow");
    ((java.awt.Component) chart.getCanvas()).setMinimumSize(new Dimension(0,0));


Version Lite

Version Full

  • Code examples
  • SDK Binaries
  • Documentation
  • Code examples
  • SDK Sources
  • SDK Binaries
  • Documentation
Licence 1 (SDK binaries)
  • Freely distribute SurfEdit SDK binaries inside your product without royaltees
Licence 2 (SDK binaries and sources)
  • Freely distribute SurfEdit SDK binaries inside your product without royaltees
  • Lifetime access to SurfEdit SDK source code
  • 1 years access to source code updates
  • Customize SDK for your needs
  • Can not distribute source code of SDK to any party, whatever your enclosing software licence or commercial conditions. However, in case you have to distribute source code of the API to your clients, please contact us : we remain open to adapt licence on a per client basis.

Price : 399 euros

Price : 999 euros

In case download did not start immediately after you completed the Paypal payement, please contact us

Hans-Bernhard Friedrich - MBTech

We enjoyed working together with Jzy3D developper team very much. They're great computer scientists, programmers and expert on the subject. Jzy3D library is clean, straight forward and therefor easy to integrate and work with. A real masterpiece. Customer service was perfect. Their communication skills are great and we feld understood and comfortable. They fulfilled our technical and social requirements beyond the measure. We are looking foreward to work together with them soon.