Heat the oil in a large sauté pan or Dutch oven. Add the chopped onion. Sauté several minutes until starting to color. Add the garlic and ginger. Cook 2 minutes.
Peel the carrots and potatoes. Cut the carrots using the oblique cutting technique. Start by slicing a carrot at a 45 degree angle. Rotate the carrot a quarter turn, then slice the next piece at a consistent 45 degree angle. Continue to rotate the carrot each time you slice at a 45 degree angle. Cut the potatoes in a 3/4-inch dice. Add both carrots and potatoes to the pan. Sauté 2 minutes.
Chop the Japanese curry bricks into small pieces. Add them to the pan, along with the coconut milk. Stir to dissolve. Add about a cup of water. Bring to a boil, then lower the heat to a simmer.
Drain the cans of baby corn and water chestnuts. Add them to the pan. Stir, then cover to let simmer about 15 minutes, stirring occasionally.
Meanwhile, make the vegetarian meatballs. Combine all of the vegetarian meatball ingredients in a medium mixing bowl. Adjust the amount of breadcrumbs to get a good consistency. Use your hands to roll the mixture into small balls, arranging them on a clean plate. Heat a skillet (I use cast iron) to medium heat. Add 1-2 tablespoons oil, then arrange the balls evenly across the skillet. Cook a couple of minutes until the bottoms are cooked, then flip them over to cook the other side for another few minutes.
Cut the broccoli into small florets. Add it to the curry. You want to add it later in the process so it does not overcook.
After a couple of minutes, add the vegetarian meatballs.
Gently simmer until the potato is cooked. At this point you may want to add more water for a looser consistency.
Crush the peanuts lightly in a mortar & pestle. Either stir the peanuts into the curry or garnish them on top of the curry. Serve with rice.