Increasing access
- Can help increase portability of examples (as in copy + paste),
- Allows loading models without a server
Most appropriate sub-area of p5.js?
Feature enhancement details
The current loadModel function takes a path to load a model from a .stl or .obj file, however this requires that a server exists that serves these assets.
A function that loads models directly from a string can increase portability of examples (as in copy + paste) and allows loading models without a server.
The following example:
//draw a spinning octahedron
let octahedron;
function preload() {
octahedron = loadModel('assets/octahedron.obj');
}
function setup() {
createCanvas(100, 100, WEBGL);
describe('Vertically rotating 3-d octahedron.');
}
function draw() {
background(200);
rotateX(frameCount * 0.01);
rotateY(frameCount * 0.01);
model(octahedron);
}
could also be written as:
const octahedron_model = `
v 0.000000E+00 0.000000E+00 40.0000
v 22.5000 22.5000 0.000000E+00
v 22.5000 -22.5000 0.000000E+00
v -22.5000 -22.5000 0.000000E+00
v -22.5000 22.5000 0.000000E+00
v 0.000000E+00 0.000000E+00 -40.0000
f 1 2 3
f 1 3 4
f 1 4 5
f 1 5 2
f 6 5 4
f 6 4 3
f 6 3 2
f 6 2 1
f 6 1 5
`
//draw a spinning octahedron
let octahedron;
function preload() {
octahedron = loadModelString(octahedron_model, {type: 'obj'});
}
function setup() {
createCanvas(100, 100, WEBGL);
describe('Vertically rotating 3-d octahedron.');
}
function draw() {
background(200);
rotateX(frameCount * 0.01);
rotateY(frameCount * 0.01);
model(octahedron);
}
The changes in code should be trivial, as this can reuse already existing helper functions.
Increasing access
Most appropriate sub-area of p5.js?
Feature enhancement details
The current loadModel function takes a path to load a model from a .stl or .obj file, however this requires that a server exists that serves these assets.
A function that loads models directly from a string can increase portability of examples (as in copy + paste) and allows loading models without a server.
The following example:
could also be written as:
The changes in code should be trivial, as this can reuse already existing helper functions.