flutter3d_education 1.0.0-rc.1
flutter3d_education: ^1.0.0-rc.1 copied to clipboard
Education on flutter3d: virtual laboratory simulations a server can replay, the experiment document a lesson is written in, and a lesson's steps. Plain Dart, no Flutter.
1.0.0-rc.1 #
-
Breaking:
lti.dartis a package of its own,flutter3d_education_lti. The LTI 1.3 launch, the AGS and xAPI clients andCheckReporterkeep their names there, and this package depends on nopointycastle,dart_jsonwebtokenorhttp, so the editor, the build tool and a lesson that read an experiment no longer resolve them.dart run flutter3d_build:migratemoves a project written againstflutter3d_lti0.8 to the new package. -
A lab is written with its own import.
lab.dartexports the recording types a lab run is read through (Demo,DigestTrace,DataSourceTrace,Divergence) andexperiment.darttheProbean experiment reads, fromflutter3d_sim, which a lab's code no longer imports for them. -
New: a lesson's answers reach the learning platform (
CheckReporter,CheckAnswer,CheckDelivery, now influtter3d_education_lti). Each answer to acheckquestion is an xAPIansweredstatement; each question an answer settles updates the lesson's one score in the gradebook through AGS,InProgressuntil every question is settled. A launch without a line item or the score scope is not graded and says so, and a refusing platform is reported in the delivery rather than thrown, so a lesson goes on when a gradebook is down.CheckReporter.forExperimentandforLessonbuild one for an experiment's or a lesson level's questions. -
New: the experiment document,
f3d.experimentv1 (experiment.dart).ExperimentDocumentholds a level by path, the substances by catalog id, the parameters, the probes (Probeand the entity it is on) and a scenario of steps that set parameters, run, expect readings within a tolerance and may ask aCheckQuestion; every number is aQuantity. References are checked when the file is read, so a step naming a parameter or a probe the document lacks is refused with both names.unknownsandobservationsare read and written for inverse runs to come. The pendulum and the chemistry bench are the first two, as fixtures undertest/fixtures/v1/. -
Breaking:
LtiMessageTypeis an open set andLtiLaunchExceptionisabstract final. LTI 1.3 has messages this package does not name yet, and a later check is a later refusal, so neither breaks aswitchwhen it grows: one over them ends with a wildcard, andon LtiLaunchExceptionstill catches every refusal.AgsActivityProgressandAgsGradingProgressstay enums, closed for good: they are the specification's own values. -
Depends on
flutter3d_foundationinstead of the plugin API, for the exception families its refusals belong to. -
The pendulum lab steps by a fixed step (
LabClock,labFixedDt), a length changed mid-swing keeps its angular momentum (ω scales by (L/L′)²), and the damping is documented in 1/s with the large-swing period. -
The chemistry bench is right about its solutions. Hydrochloric acid is colourless; permanganate is labelled 0.2 mmol/L, the strength its purple is (at 0.02 mol/L three centimetres of it are black); Beer and Lambert run on linear transmittance, decoded from the picked sRGB, so a mixture is the colour light through it is; and the bench says it mixes colours and nothing reacts. The glass is half a millimetre, as drawn.
-
New:
flutter3d_labis a library of this package,lab.dart, with the API it had, andflutter3d_education.dartexports it.dart run flutter3d_build:migratemoves a project's dependency and imports; its own history is indoc/changelogs/.flutter3d_ltiisflutter3d_education_lti. -
The chemistry bench is the example.
chemlabmoved frompackages/education/toexample/: it draws, so it stays an application, and the package stays plain Dart for the services that use it.
lab.dart, from flutter3d_lab 1.0.0-rc.1 #
- 1.0.0 is a promise: strict semver from there. This release candidate
already keeps it. A patch fixes bugs and
breaks nothing, a minor adds, and a break waits for a major. The whole
public API is stable, with no experimental exceptions, and is held to the
snapshot in
api/. A deprecated name stays until the next major and for at least six months, and says what replaces it. CONTRIBUTING.md has the rules, and SUPPORT.md says which releases get fixes and on which platforms.
Moves with the stack to 1.0.0, whose flutter3d_hardware gives
PassEncoder.draw a window of the bound indices and every PassEncoder
setAlphaToCoverage.
A pendulum with no world swings by the engine's one standard gravity.
PendulumSimulation and PendulumLabRun default to standardGravity
from flutter3d_physics instead of a 9.81 of their own: the same number,
so every recorded lab replays to the bit, but now the one every world in
the engine starts with. A lab teaching the Moon still passes its own.
Its flutter3d_* dependencies ask for ^1.0.0.