# Multiple Sketches In One Export

**URL:** <https://discourse.processing.org/t/multiple-sketches-in-one-export/48705>\
**Category:** Beginners\
**Created:** [May 31, 2026, 3:13pm UTC](https://discourse.processing.org/t/multiple-sketches-in-one-export/48705 "2026-05-31T15:13:48Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![fredstout](https://avatars.discourse-cdn.com/v4/letter/f/258eb7/32.png) [@fredstout](https://discourse.processing.org/u/fredstout)\
**Post date:** [May 31, 2026, 3:13pm UTC](https://discourse.processing.org/t/multiple-sketches-in-one-export/48705/1 "2026-05-31T15:13:48Z")

</div>

I am developing a system containing multiple sketches (currently 4). I want to export them in one package. I believe that I will have to export each individually then put them in one folder. I am thinking that I may need another sketch to act as an overall manager. If so how does the manager start another sketch and what happens when the “called” sketch terminates?  
Fred Stout

---

<div class="post-metadata">

**Author:** ![glv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/glv/32/18785_2.png) [@glv](https://discourse.processing.org/u/glv)\
**Post date:** [May 31, 2026, 4:58pm UTC](https://discourse.processing.org/t/multiple-sketches-in-one-export/48705/2 "2026-05-31T16:58:22Z")

</div>

> [@fredstout](#):
>
> If so how does the manager start another sketch and what happens when the “called” sketch terminates?

First part of question:

> **[launch() / Reference](https://processing.org/reference/launch_.html)**
>
> Attempts to open an application or file using your platform's launcher. The filename parameter is a String specifying the file name and location. The location parameter must be a full path name…

This will launch a sketch that was exported:

```processing
/* 
Note about commented code: 
This won't work because of the \
Change \ them to /
OR
\\
*/

//String pathToSketchtToLaunch = "D:\Users\GLV\Documents\P4\sketchToLaunch\windows-amd64\sketchToLaunch.exe"; // Needs to be nodified!
String pathToSketchtToLaunch = "D:/Users/GLV/Documents/P4/sketchToLaunch/windows-amd64/sketchToLaunch.exe"; // Works!
println(pathToSketchtToLaunch);

// Launches sketch:
launch(pathToSketchtToLaunch);

exit(); // Added this to exit sketch

```

Second part of question:  
Try it and see what happens!

Experimenting:

```processing
size(800, 200);

String time = hour() + ":" + nf(minute(), 2) + ":" + nf(second(), 2);
println(time);

String path = sketchPath("");
println(path);

String sketchName = new File(sketchPath("")).getName();
println(sketchName);

String pathToExe = path + "windows-amd64" + "\\" + sketchName + ".exe";
println(pathToExe);

pathToExe = pathToExe.replace("\\", "/"); // Replaces '\' characters with '/'
println(pathToExe);

fill(0);
textSize(16);
text(time, 10, 50);
text(pathToExe, 10, 100);

// You can use pathToExe directly in a string!

//launch(pathToExe); //Careful! 
//You do not want endless loops launching sketches! 
//This was safe but I made mistakes along the way and had to restart my PC to exit a loop.

```

`:)`

---

<div class="post-metadata">

**Author:** ![fredstout](https://avatars.discourse-cdn.com/v4/letter/f/258eb7/32.png) [@fredstout](https://discourse.processing.org/u/fredstout)\
**Post date:** [May 31, 2026, 6:52pm UTC](https://discourse.processing.org/t/multiple-sketches-in-one-export/48705/3 "2026-05-31T18:52:02Z")

</div>

Many thanks! I will try it.  
Fred

---

<div class="post-metadata">

**Author:** ![glv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/glv/32/18785_2.png) [@glv](https://discourse.processing.org/u/glv)\
**Post date:** [May 31, 2026, 9:06pm UTC](https://discourse.processing.org/t/multiple-sketches-in-one-export/48705/4 "2026-05-31T21:06:58Z")

</div>

Hello @fredstout,

I am using Windows 10.

There is a reference here to _ **escape sequences** _ here:  
_[String / Reference / Processing.org](https://processing.org/reference/String.html)_

And here:

> [@Missing semicolon error when there really is one](https://discourse.processing.org/t/missing-semicolon-error-when-there-really-is-one/46805/4):
>
> Hello folks! For visitors to topic. The backslash \ is an escape character and not the only one! Issues with it come up and it is worthy of adding to a checklist when coding or otherwise! Adding some related references to the topic. References: [String / Reference / Processing.org](https://processing.org/reference/String.html)[Escape character - Wikipedia](https://en.wikipedia.org/wiki/Escape_character)[Escape sequence - Wikipedia](https://en.wikipedia.org/wiki/Escape_sequence)[Markup language - Wikipedia](https://en.wikipedia.org/wiki/Markup_language)[Backslash vs Forward Slash: Key Differences in Grammar and File Paths – WP Maintenance](https://wpmaintenancemode.com/backslash-vs-forward-slash-key-differences-in-grammar-and-file-paths/) It comes up in topics and worth putting…

Here to help!

`:)`

---

<div class="post-metadata">

**Author:** ![fredstout](https://avatars.discourse-cdn.com/v4/letter/f/258eb7/32.png) [@fredstout](https://discourse.processing.org/u/fredstout)\
**Post date:** [June 1, 2026, 8:31pm UTC](https://discourse.processing.org/t/multiple-sketches-in-one-export/48705/5 "2026-06-01T20:31:00Z")

</div>

I hope I did this correctly: I added the launch to your sketch and it ran successfully. I noticed that when your sketch ended, control came back to me like it always does which is good to know.  
Fred

---

<div class="post-metadata">

**Author:** ![glv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/glv/32/18785_2.png) [@glv](https://discourse.processing.org/u/glv)\
**Post date:** [June 4, 2026, 4:43pm UTC](https://discourse.processing.org/t/multiple-sketches-in-one-export/48705/6 "2026-06-04T16:43:38Z")

</div>

Hello @fredstout,

Some code that I was experimenting with:

```auto
// Author: glv
// Original: 2026-06-04

// An exploration into launching sketches.
// This code only represents some of the intermediate steps taken to understand the paths.
// This can certainly be trickled down to fewer lines once understood. :)
// This uses exported Java and each sketch will add 300 MiBi if this is used.
// The paths change with each launch selection so be careful to scrutinize these!

void setup()
  {
  size(900, 1080);
  surface.setLocation(5*second(), 5*second()); //So they did not overlap!
  
  String instructions = "1) Export the sketch so it is available to this code." + '\n' +
                        "2) Run this sketch from the PDE." + '\n' +
                        "3) Cross reference the output to the source code." + '\n' +
                        "4) Focus (mouse click) on window that you want to be active!" + '\n' +
                        "5) Select an exectable (sketchname + .exe) to launch" + '\n' +
                        "6) Only valid selections will launch! Others were for testing" + '\n' +
                        "7) Don't get lost in the details! Focus on what is working." + '\n' + 
                        "8) Reduce this code to only what is needed!" + '\n' +
                        "9) Be careful and DO NOT generate code that launches in a loop!" + '\n' +
                        " This is why I added keyboard controls to select intent" + '\n' +
                        "10) Go back to 4 and try the different windows. :)" + '\n' +
                        "11) Create a Sketch_1, export and and try it!"; 
                        ;
                                                
  println("Instructions: " + '\n' + instructions);
  println();
  
  String time = hour() + ":" + nf(minute(), 2) + ":" + nf(second(), 2);
  println("Time: " + '\n' + time);
  println();

  //Default
  launchUtility('1');
  }

void draw()
  {
  }

void keyReleased()
  {
  background(255/2, 255, 255/2);
  textSize(48);
  String s = launchUtility(key);

  if(s.length() > 0)
    launch(s);
  }

String launchUtility(char c)
  {
  fill(0);
  textSize(18);
  int y = 0;
  int sp = 45;
  String time = hour() + ":" + nf(minute(), 2) + ":" + nf(second(), 2);
  text("Time: " + '\n' + time, 10, y+=sp);
    
  String rootFolder = System.getProperty("user.dir");
  rootFolder = rootFolder.replace("\\", "/");
  text("rootFolder (user.dir): " + '\n' + rootFolder, 10, y+=sp); 
  
  //String parentPath = rootFolder.substring(0, rootFolder.lastIndexOf("/"));
  //text("parentPath: " + '\n' + parentPath, 10, y+=sp);

  //String parentFolderName = parentPath.substring(parentPath.lastIndexOf("/") + 1);
  //text("parentFolderName: " + '\n' + parentFolderName, 10, y+=sp);
  
  text("sketchPath_1: " + '\n' + sketchPath(), 10, y+=sp); 
  String sketchFolder_1 = sketchPath();
  sketchFolder_1 = sketchFolder_1.replace("\\", "/"); // Stick with '/'
  text("sketchFolder_1: " + '\n' + sketchFolder_1, 10, y+=sp);
  
  String parentPath1 = sketchFolder_1.substring(0, sketchFolder_1.lastIndexOf("/"));
  text("parentPath1: " + '\n' + parentPath1, 10, y+=sp);
  
  String parentFolderName1 = parentPath1.substring(parentPath1.lastIndexOf("/") + 1);
  text("parentFolderName1: " + '\n' + parentFolderName1, 10, y+=sp);  
  
  String parentPath2 = parentPath1.substring(0, parentPath1.lastIndexOf("/"));
  text("parentPath2: " + '\n' + parentPath2, 10, y+=sp);  
  
  String parentFolderName2 = parentPath2.substring(parentPath2.lastIndexOf("/") + 1);
  text("parentFolderName2: " + '\n' + parentFolderName2, 10, y+=sp);
  
  String sketch_1FolderName = parentFolderName2;
  text("sketch_1FolderName: " + '\n' + sketch_1FolderName, 10, y+=sp);
  
  // String sketch_1Exe = parentFolderName2 + "/Sketch_1/windows-amd64/" + "Sketch1.exe";
  //text("sketch_1Exe: " + '\n' + sketch_1Exe, 10, y+=sp);
  
  text("sketchPath_2: " + '\n' + sketchPath(""), 10, y+=sp);
  String sketchFolder_2 = sketchPath("");
  sketchFolder_2 = sketchFolder_2.replace("\\", "/"); // Stick with '/'
  text("sketchFolder_2: " + '\n' + sketchFolder_2, 10, y+=sp); 

  String sketchName_1 = rootFolder.substring(0, rootFolder.lastIndexOf("/"));
  sketchName_1 = sketchName_1.substring(sketchName_1.lastIndexOf("/")+1);
  text("sketchName_1: " + '\n' + sketchName_1, 10, y+=sp);     
      
  String [] skethFolderSplit = sketchFolder_1.split("/");
  
  String sketchName_2 = skethFolderSplit [skethFolderSplit.length-1];
  text("sketchName_2: " + '\n' + sketchName_2, 10, y+=sp); 

  String sketchName_3 = skethFolderSplit [skethFolderSplit.length-2];
  text("sketchName_3: " + '\n' + sketchName_3, 10, y+=sp);          
         
  String sketchName_4 = new File(sketchPath("")).getName();
  text("sketchName_4: " + '\n' + sketchName_4, 10, y+=sp); 
 
  y+=25;
  text("Select an executable to launch: ", 10, y+=sp); 
 
  String local = sketchFolder_2 + "windows-amd64" + "/" + sketchName_2 + ".exe";
  text("local: (Hit key 0)" + '\n' + local, 10, y+=sp); 
  
  String export_1 = sketchFolder_2 + sketchName_1 + ".exe";
  text("export_1 (Hit key = 1): " + '\n' + export_1, 10, y+=sp);
  
  String export_2 = sketchFolder_2 + sketchName_3 + ".exe";
  text("export_2: (Hit key = 2)" + '\n' + export_2, 10, y+=sp);
  
  String export_3 = parentPath1 + "/Sketch_1/windows-amd64/" + "Sketch_1.exe";
  text("export_3: (Hit key = 3)" + '\n' + export_3, 10, y+=sp);  
  
  String export_4 = parentPath2 + "/Sketch_1/windows-amd64/" + "Sketch_1.exe";
  text("export_4: (Hit key = 4)" + '\n' + export_4, 10, y+=sp);  
  
  String s = "";
  if(c == '0')
    s = local;
  else if(c == '1')
    s = export_1;
  else if(c == '2')
    s = export_2;
  else if(c == '3')
    s = export_3 ;    
  else if(c == '4')
    s = export_4 ;    
  
  return s;
}

```

I managed to get it to launch the exported sketches from different entry points.

After all that was said and done I made these portable by packaging this into a folder and launch these independent of the original Processing folders.

Have fun!

`:)`

---

<div class="post-metadata">

**Author:** ![fredstout](https://avatars.discourse-cdn.com/v4/letter/f/258eb7/32.png) [@fredstout](https://discourse.processing.org/u/fredstout)\
**Post date:** [June 4, 2026, 5:02pm UTC](https://discourse.processing.org/t/multiple-sketches-in-one-export/48705/7 "2026-06-04T17:02:39Z")

</div>

Yikes! I will attempt to learn what I can from your code. As you mentioned, it is complicated. Thank you for this.  
It make take me a while, I have several trips lined up.  
Fred

---

<div class="post-metadata">

**Author:** ![glv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/glv/32/18785_2.png) [@glv](https://discourse.processing.org/u/glv)\
**Post date:** [June 5, 2026, 12:49am UTC](https://discourse.processing.org/t/multiple-sketches-in-one-export/48705/8 "2026-06-05T00:49:31Z")

</div>

> [@fredstout](#):
>
> Yikes!

That about sums it up!

I had to do this preliminary exploration to see what was happening from the different launch points (PDE sketch, exported sketch, different folders). I learned a lot along the way!

It can be trickled down to only what is what is necessary once you examine it.  
Start commenting out lines; some are dependent on previous ones!

Have fun!

Take a look at this as well to launch multiple PApplets (sketches):

- [Launcher for Multi-Renderer PApplets](https://discourse.processing.org/t/launcher-for-multi-renderer-papplets/46764)
- [PApplet](https://processing.github.io/processing-javadocs/core/processing/core/PApplet.html)

`:)`

---

<div class="post-metadata">

**Author:** ![Chrisir](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/chrisir/32/45_2.png) [@Chrisir](https://discourse.processing.org/u/Chrisir)\
**Post date:** [June 5, 2026, 12:46pm UTC](https://discourse.processing.org/t/multiple-sketches-in-one-export/48705/9 "2026-06-05T12:46:29Z")

</div>

You can also integrate the Sketches into one big sketch with multiple states (and tabs)

See [Beginner: new pages (state)](https://discourse.processing.org/t/beginner-new-pages-state/17774)

---

<div class="post-metadata">

**Author:** ![fredstout](https://avatars.discourse-cdn.com/v4/letter/f/258eb7/32.png) [@fredstout](https://discourse.processing.org/u/fredstout)\
**Post date:** [June 5, 2026, 1:18pm UTC](https://discourse.processing.org/t/multiple-sketches-in-one-export/48705/10 "2026-06-05T13:18:44Z")

</div>

True! However both my sketches (and a third is planned) are, in my opinion, large enough right now. Both use all the tabs and are about 1800 lines of code each.  
Thanks for responding, its always appreciated!

---

<div class="post-metadata">

**Author:** ![adaptinnovative](https://avatars.discourse-cdn.com/v4/letter/a/2acd7d/32.png) [@adaptinnovative](https://discourse.processing.org/u/adaptinnovative)\
**Post date:** [June 7, 2026, 3:52am UTC](https://discourse.processing.org/t/multiple-sketches-in-one-export/48705/11 "2026-06-07T03:52:14Z")

</div>

I have three (3) easier method(s).

**Method 1**. I have a sketch runner that just runs .pde’s as a separate sketch without the need of a folder

**Method 2** I have a process where it stores all of the pdes into one file

**Method 3** I built a sketch browser that allows you to run multiple sketches with them all in one folder.

---

<div class="post-metadata">

**Author:** ![fredstout](https://avatars.discourse-cdn.com/v4/letter/f/258eb7/32.png) [@fredstout](https://discourse.processing.org/u/fredstout)\
**Post date:** [June 7, 2026, 2:56pm UTC](https://discourse.processing.org/t/multiple-sketches-in-one-export/48705/12 "2026-06-07T14:56:39Z")

</div>

Thank you for your response but I do not understand what you said. I am a beginner and need a little more information.  
Thanks

---

<div class="post-metadata">

**Author:** ![glv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/glv/32/18785_2.png) [@glv](https://discourse.processing.org/u/glv)\
**Post date:** [June 8, 2026, 5:26pm UTC](https://discourse.processing.org/t/multiple-sketches-in-one-export/48705/14 "2026-06-08T17:26:01Z")

</div>

Hello @fredstout,

My responses are focused on your request for managing exported sketches.  
_I am assuming this means exported to an executable that can run **without** the Processing PDE._

> [@fredstout](#):
>
> I want to export them in one package.

You have to export each seperately.

> [@fredstout](#):
>
> I believe that I will have to export each individually then put them in one folder.

Yes! The exported sketch folders go into one folder. The code I provided works for them in the Processing Sketchbook folder but they can later be moved to their own folder.

> [@fredstout](#):
>
> I am thinking that I may need another sketch to act as an overall manager.

I created a launcher that is an exported sketch as well.

The sketch I provided _initially_ runs from PDE.  
You MUST first export this and then run it!  
Keypress 0 will launch() the launcher.

Once you open the launcher you can then launch() other exported sketches.

_**Once you have created all the necessary files you can launch() the exported launcher directly without the Processing PDE.**_

Throughout it is necessary to have focus on the window (click with mouse) to ensure you are making selections in the active sketch.

> [@glv](#):
>
> It can be trickled down to only what is what is necessary once you examine it.

Trickled down version:

```processing
void setup()
  {
  size(900,600);
  surface.setLocation(5*second(), 5*second()); 
  
  String instructions = "Work through the code to understand steps and sequence";
                                                
  println("Instructions: " + '\n' + instructions);
  println();
  
  String time = hour() + ":" + nf(minute(), 2) + ":" + nf(second(), 2);
  println("Time: " + '\n' + time);
  println();

  //Default
  char ch = ' '; 
  launchUtility(ch);
  }

void draw()
  {
  }

void keyReleased()
  {
  background(255/2, 255, 255/2);
  textSize(48);
  launchUtility(key);
  }

void launchUtility(char choice)
  {
  fill(0);
  textSize(18);
  
  int y = 0;
  int sp = 50;
  
  String time = hour() + ":" + nf(minute(), 2) + ":" + nf(second(), 2);
  text("Time: " + '\n' + time, 10, y+=sp);
    
  String sketchFolder = sketchPath();
  sketchFolder = sketchFolder.replace("\\", "/"); // Stick with '/'
  text("sketchFolder: " + '\n' + sketchFolder, 10, y+=sp);
  
  String parentPathA = sketchFolder.substring(0, sketchFolder.lastIndexOf("/"));
  text("parentPath1: " + '\n' + parentPathA, 10, y+=sp);
  
  String parentPathB = parentPathA.substring(0, parentPathA.lastIndexOf("/"));
  text("parentPath2: " + '\n' + parentPathB, 10, y+=sp);  
         
  String [] skethFolderSplit = sketchFolder.split("/");
  
  String sketchName = skethFolderSplit [skethFolderSplit.length-1];
  text("sketchName: " + '\n' + sketchName, 10, y+=sp); 
 
  y+=25;
  text("Select an executable to launch: ", 10, y+=sp); 
 
  String exportedLauncher = sketchFolder + "/" + "windows-amd64" + "/" + sketchName + ".exe";
  text("Exported Launcher: (Hit key 0)" + '\n' + exportedLauncher, 10, y+=sp); 
  
  String skName = ""; // Sketch name to launch
  
  //String export_1 = parentPath2 + "/Sketch_1/windows-amd64/" + "Sketch_1.exe";
  skName = "Sketch_1";
  String export_1 = parentPathB + "/" + skName + "/windows-amd64/" + skName + ".exe";
  text("Sketch_1: (Hit key = 1)" + '\n' + export_1, 10, y+=sp); 
  
  //String export_2 = parentPath2 + "/Sketch_2/windows-amd64/" + "Sketch_2.exe";
  skName = "Sketch_2";
  String export_2 = parentPathB + "/" + skName + "/windows-amd64/" + skName + ".exe";
  text("Sketch_2: (Hit key = 2)" + '\n' + export_2, 10, y+=sp); 
  
  text("Sketch_1 and Sketch_2: (Hit key = 3)" + '\n' + export_2, 10, y+=sp); 
  
  String s = "";
  if(choice == '0')
    {
    s = exportedLauncher;
    launch(s);
    }
  else if(choice == '1')
    {
    s = export_1;
    launch(s);
    }
  else if(choice == '2')
    {
    s = export_2;
    launch(s);
    }
  else if(choice == '3')
    {
    s = export_1;
    launch(s);
    s = export_2;
    launch(s);
    } 
  }

```

Not so simple but works if you understand all the layers.

A simple approach would be to create a standalone Windows launcher using either a Windows batch file or a Windows PowerShell script to launch an executable which can be an exported sketch.

`:)`

---

<div class="post-metadata">

**Author:** ![adaptinnovative](https://avatars.discourse-cdn.com/v4/letter/a/2acd7d/32.png) [@adaptinnovative](https://discourse.processing.org/u/adaptinnovative)\
**Post date:** [June 9, 2026, 6:35am UTC](https://discourse.processing.org/t/multiple-sketches-in-one-export/48705/15 "2026-06-09T06:35:30Z")

</div>

![image](https://canada1.discourse-cdn.com/flex036/uploads/processingfoundation1/original/3X/1/9/1933d4e23f47aede17a0d0fe8274ca6530e6c7de.jpeg)

here is a sample of one I wrote today that run multiple sketches. you can click any to maximize and minimize.

---

<div class="post-metadata">

**Author:** ![fredstout](https://avatars.discourse-cdn.com/v4/letter/f/258eb7/32.png) [@fredstout](https://discourse.processing.org/u/fredstout)\
**Post date:** [June 9, 2026, 12:48pm UTC](https://discourse.processing.org/t/multiple-sketches-in-one-export/48705/16 "2026-06-09T12:48:48Z")

</div>

yes, i want the sketch run without the pde. I am leaving town and will return in about 10 days.

---

<div class="post-metadata">

**Author:** ![fredstout](https://avatars.discourse-cdn.com/v4/letter/f/258eb7/32.png) [@fredstout](https://discourse.processing.org/u/fredstout)\
**Post date:** [June 9, 2026, 12:53pm UTC](https://discourse.processing.org/t/multiple-sketches-in-one-export/48705/17 "2026-06-09T12:53:53Z")

</div>

Thank you for your response. I will be out of town for a while so I will not get to until I return,  
Fred

---

<div class="post-metadata">

**Author:** ![glv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/glv/32/18785_2.png) [@glv](https://discourse.processing.org/u/glv)\
**Post date:** [June 17, 2026, 4:18pm UTC](https://discourse.processing.org/t/multiple-sketches-in-one-export/48705/18 "2026-06-17T16:18:19Z")

</div>

Hello @fredsout,

Another approach…

**Sketch to launch**

- Create a simple sketch called _sketch\_1_ that you want to _launch_ later.
- Export.
- Find the _sketch\_1.java_ file in the export and copy it to the _Launcher_ sketch.
- All the tabs from the original Processing sketch end up in this one file!

**Launcher**

Create a sketch called _launcher_:

 ![image](https://canada1.discourse-cdn.com/flex036/uploads/processingfoundation1/original/3X/7/8/788d8f42188be66661ccb07111fa8a2bc40a04f1.png)

Comment out what you do not need.  
Test to see that it is launching the _sketch\_1.java_.

**Export Launcher**

Exporting the _Launcher_ creates one exported application/runtime bundle; the copied `sketch_1.java` is compiled into that Launcher export.

You MUST rebuild everything if adding sketches or making changes.  
Later you can explore writing a script to automate the process.

The above worked for me.  
I had some hiccups with libraries but was able to sort this out.  
Focus on simple sketches first!

**Run Launcher**

Run Launcher from the exported _launcher.exe_

You must be meticulous in generating these.

This is an example of the _sketch\_1.java_ file that was generated:

 ![image](https://canada1.discourse-cdn.com/flex036/uploads/processingfoundation1/original/3X/1/8/1802a5179fa99bf3d4873a8196730544912ae2e6.png)

References for further exploration:

- [processing4/core/src/processing/core/PApplet.java at main · processing/processing4 · GitHub](https://github.com/processing/processing4/blob/main/core/src/processing/core/PApplet.java#L9790)
- [PApplet](https://processing.github.io/processing-javadocs/core/processing/core/PApplet.html)
- [Processing in Java - Happy Coding](https://happycoding.io/tutorials/java/processing-in-java)
- [Processing Showcase - Happy Coding](https://happycoding.io/tutorials/java/processing-in-java/processing-showcase)

`:)`

---

<div class="post-metadata">

**Author:** ![fredstout](https://avatars.discourse-cdn.com/v4/letter/f/258eb7/32.png) [@fredstout](https://discourse.processing.org/u/fredstout)\
**Post date:** [June 17, 2026, 8:13pm UTC](https://discourse.processing.org/t/multiple-sketches-in-one-export/48705/19 "2026-06-17T20:13:35Z")

</div>

Thank you very much. This may take a while but I will follow your example. I would love to tell you that I am sure there will be no further questions but that would not be true.

Additional information (optional reading):  
I am developing a system that profiles a railroad. Profile in this instance means maintaining a permanent record of all curves and grades down in 100 foot intervals plus the location of all railroad infrastructure items such as grade crossings, culverts, tunnels, etc. This first application generates the data using GNSS data to provide location data for every named item. The second application is a viewer that presents the data in graphical form. The third planned application will add subsequent data to the database rather than having to remap the entire railroad. The 4th application will be your method to select the desired application as well as to set certain settings. I have to admit to being very interested in what you have done so it may pop up earlier than thought.  
Thank you again.  
Fred

---

<div class="post-metadata">

**Author:** ![glv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/glv/32/18785_2.png) [@glv](https://discourse.processing.org/u/glv)\
**Post date:** [June 17, 2026, 10:37pm UTC](https://discourse.processing.org/t/multiple-sketches-in-one-export/48705/20 "2026-06-17T22:37:40Z")

</div>

@fredstout,

> [@fredstout](#):
>
> This first application generates the data

> [@fredstout](#):
>
> The second application is a viewer that presents the data in graphical form

How are you sharing data or communicating between applications?

---

<div class="post-metadata">

**Author:** ![fredstout](https://avatars.discourse-cdn.com/v4/letter/f/258eb7/32.png) [@fredstout](https://discourse.processing.org/u/fredstout)\
**Post date:** [June 18, 2026, 12:02am UTC](https://discourse.processing.org/t/multiple-sketches-in-one-export/48705/21 "2026-06-18T00:02:11Z")

</div>

The first application (“Mapping”) reads the GNSS satellites and generates a record every 1/4 second. The record is a comma delimited text file containing all the data that pertains to that GNSS satellite read. This “master” is saved and used by the second application that accepts user input and displays the contents in a graphic manner. In addition, there is a text file that is created to feed Google Maps. All data, thus far, is in comma delimited text format. All data files will reside in the same folder as the applications

[Next page](https://discourse.processing.org/t/multiple-sketches-in-one-export/48705.md?page=2)
