Hiya tcdan. Wow, cool project! I’ll try MY version of answers.
Yes, our extrudeShape, polygonMeshBuilder, and a cool system called GeometryBuilder… can all do extrudes from line-shapes… and set end-caps or not. I recently used an extrudeShape… here. I believe @nasimiasl’s GeometryBuilder… uses SVG lines as its “layout”. And let’s not forget about @jerome’s Solid Particle System (SPS) which is AMAZINGLY performant with collision-testing cuboids.
Yes, but most people would not use a list of triangles, whatever that is. We would use a ground mesh or heightMap or displaceMap. I don’t know what a “list of triangles” is, but if it has vertex positions, we can convert it to the vertexData objects that are “the database” for a single BJS mesh. A vertexData object holds vertex positions, their indicies (triangle “face” connecting), their lighting normals, sometimes their UVs (texture mapping), and sometimes color-per-vertex data. BJS standard boxes are 24-vert… making them flat-shaded by default. There are other 8-vert smooth-shaded ways, as wanted. Our edgesRenderer can give-back some geo-definition to smooth-shaded 8-vert boxes. [demo]
Import line segments? Their paths are pre-calculated? If so, yeah, these trajectories would be used to create a linesMesh object. They can have color and length, single or multi-segmented, but they are NOT thickness-adjustable. But, they could be converted to “tubeMesh” fairly easily.
Regarding pre-calculated trajectories that are imported: Its more fun to let a JS algorithm draw/calc the line segments afer extrudedBuildings.onReady… using BJS raycasting and a ricochet formula.
Already covered. No thickness without converting linesMesh into tubeMesh/cylinder “rods”. All your tubes would be perfectly straight trajectory… and thus… low-vert-count, hi-perf tubes (no sub-divs along the way).
Can do, easy.
1b. Yep, BJS can handle this… if you’re running on a platform more-modern than an Apple2e.
2b. No problems. BJS doesn’t render anything that is not within camera.fov (field-of-view) “frustum” (cone). Our core coders team… are all performance junkies. If they can somehow squeeze another 2 FPS from ANYWHERE, they will. They’re essentially obsessed with performance. But you must be sure to KNOW how to utilize those available performance features… and we can help (and so can docs-reading). But what you have described… I think you have nothing to worry about AT ALL. Want to “fire” the balls from a physics engine “gun”, and have them leave a smoke trail as they ricochet from building-wall to building-wall (with gravity and velocity fall-off matching real-Earth physics)? I think CAN DO. With our new Ammo plugin, even MATERIAL physics… you know… was the ricochet off-of brick? Wood? Steel? Plastic? Material density tests and penetration calcs, even! Projectile material tests and (bullet lead) soft-body deformations. SO COOL! (sorry, tmi)
3b. Create Your Own File Importer - Babylon.js Documentation A custom file importer… how cool is THAT? But we already allow import of a ton of standard and bleeding-edge filetypes. Umm… this is a guess… but… I think JSON “blobs” are used quite often… to transfer data around, for BJS scenes. I know nothing about them.
Now… don’t count on my answers to mean ANYTHING. I am wrong… pretty often. I mislead… pretty often. I’m a forever-noob… but I have been hanging-around watching BJS grow… from infancy (6+ years). I’m no pro-coder. I’m an artist, and demented experimenter… and I talk a lot in posts… which sometimes work ok for noobs to read… as if they were tutorials. I over-explain… because I like kids and foreigners who don’t speak much English. I’m a founding member of the World famous “Lamer Support Foundation”… and I need to maintain a certain level of stupidity and inexperience… to fulfill that role. In deep-tech category… I haven’t advanced at all, in 30+ years. I still use vacuum-tube-powered mesh, and my BJS scenes are coal-steam driven. heh. I hope I’ve been helpful and somewhere near correct. Party on, good luck, we’re here to help-out. Stay tuned for more/better comments.